home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / compress / acmp_300.zip / ACMP-300.TXT next >
Text File  |  1993-06-09  |  117KB  |  2,370 lines

  1.  
  2.  
  3.        ARCHIVER COMPARISON -- Version 3.00
  4.  
  5.        June 9, 1993
  6.  
  7.    by  Dean W. Cooper
  8.  
  9.  
  10.  
  11.    What is this?
  12.    -------------
  13.  
  14.       This file presents the results of tests that I ran on a number
  15.    of archivers including the latest versions of PKZIP, ARJ, LHA, and
  16.    others.  Tests were run on 12 different sets of files of various
  17.    types.  The program DCCMP (included in this distribution), is the
  18.    program I wrote to automatically run the tests.  It can be used to
  19.    run tests on your own data.
  20.  
  21.       This file and the program DCCMP may be freely used and distributed,
  22.    but please distribute all files together.
  23.  
  24.  
  25.    Who am I?
  26.    ---------
  27.  
  28.       Years ago when PKARC was the main archiver, I wrote the DWC
  29.    archiver which was equal in speed and compression size to it.
  30.    Although I haven't written a new archiver lately, I am still curious
  31.    as to how the new archivers are doing.  So, from time to time I run
  32.    some tests.
  33.  
  34.       Questions?  Comments?  Leave a message for me at:
  35.  
  36.             (414) 789-4210  Exec-PC
  37.             (516) 536-8723  Sound-of-Music BBS (Home of SMARTNET)
  38.             (602) 326-2403  (voice)
  39.  
  40.       Or write to:
  41.  
  42.             Dean W. Cooper
  43.             3078 N. Palo Verde
  44.             Tucson, AZ  85716
  45.  
  46.  
  47.    What is contained in this distribution?
  48.    ---------------------------------------
  49.  
  50.       The following is a list of files I have included in this distribution
  51.    and what they are:
  52.  
  53.       ACMP-300.TXT   --  Archiver comparison, version 3.00 (this file).
  54.                          Contains the results of the tests in raw form and
  55.                          in summarized tabular format.  Also includes general
  56.                          information, a list of what archivers were tested,
  57.                          and a list of what each test set was composed of.
  58.  
  59.       DCCMP.EXE      --  My comparer program.  This is what I used to generate
  60.                          the raw data.  Simply run "DCCMP" to get complete
  61.                          usage information.
  62.  
  63.       ARCHIVE.CMP    --  The DCCMP format batch file that tells my program
  64.                          what archivers to run, and how to run them.
  65.  
  66.       ACMP.BAT       --  The DOS batch file I used to run my DCCMP program
  67.                          with.
  68.  
  69.  
  70.    What was tested?
  71.    ----------------
  72.  
  73.       I tested 12 separate sets of files.  The test sets were compressed
  74.    and extracted three times each in order to make sure timings were
  75.    accurate.
  76.  
  77.    The following archivers and options were tested:
  78.  
  79.       PKZIP     2.04g  -a -ex       -- Phil Katz's PKZIP (max compression)
  80.       PKZIP     2.04g  -a -en       -- .. PKZIP (normal compression)
  81.       PKZIP     2.04g  -a -ef       -- .. PKZIP
  82.       PKZIP     2.04g  -a -es       -- .. PKZIP (fastest)
  83.       ARJ       2.39f   a -m1       -- Robert Jung's ARJ (best compression)
  84.       ARJ       2.39f   a -m3       -- Robert Jung's ARJ
  85.       ARJ       2.39f   a -m4       -- Robert Jung's ARJ (fastest)
  86.       ARJ       2.39f   a -jm       -- Robert Jung's ARJ (maximum compression)
  87.       ARJ       2.39f   a -jm1      -- Robert Jung's ARJ (faster max compression)
  88.       SQZ       2.08.3e a -q0       -- Swedish archiver (best compression)
  89.       SQZ       2.08.3e a -q3       -- Swedish archiver
  90.       SQZ       2.08.3e a -q6       -- Swedish archiver
  91.       SQZ       2.08.3e a -q9       -- Swedish archiver
  92.       SQZ       2.08.3e a -m1       -- Swedish archiver (fastest)
  93.       LHA       2.52    a -n        -- Yoshi's latest version of LHARC
  94.       HYPER     2.5    -a           -- German archiver
  95.       ZIP       1.9    -1           -- Freeware ZIP compatible (fastest)
  96.       ZIP       1.9    -3           -- Freeware ZIP compatible
  97.       ZIP       1.9    -6           -- Freeware ZIP compatible
  98.       ZIP       1.9    -9           -- Freeware ZIP compatible (best compression)
  99.       HAP       3.00    a           -- Archiver from The Netherlands
  100.  
  101.       Note that most of the archivers are tested with multiple options.  The
  102.    options offer a range of trade-offs between compression size and compression
  103.    speed.  Indeed, I did not attempt to test ALL possible options but just a
  104.    sampling to give a good idea of the possible range for each archiver.
  105.  
  106.  
  107.  
  108.    The test system?
  109.    ----------------
  110.  
  111.       The tests were run on a 386 PC compatible with Peter Norton SI
  112.    ratings of:
  113.  
  114.          Computing Index:  28.8
  115.               Disk Index:   3.0
  116.  
  117.    o The computer was setup as follows:
  118.  
  119.          - DOS 5.0
  120.          - Windows 3.1 Smartdrv, 2 Meg, with write cache On.
  121.          - Windows 3.1 Ramdrive, 1.2 Meg
  122.          - Windows 3.1 EMM386, 3.5 Meg XMS memory
  123.          - 517K conventional memory available to archivers
  124.          - TMP & TEMP environment variables pointing to ramdrive
  125.  
  126.    o My computer has one 302 Meg hard disk partitioned into 6 logical
  127.      drives.  All tests were run on the 42 Meg partition F:.
  128.  
  129.    o All tests were run three times to get accurate timings.
  130.  
  131.    o Each set of files was put in a separate directory on drive F: (in the
  132.      directories f:\test1, f:\test2, etc).
  133.  
  134.    o The files were extracted to the empty directory f:\temp.
  135.    
  136.    o In the following, the line "DCCMP ..." tells the exact arguments that
  137.      were passed to the comparer program DCCMP.
  138.  
  139.  
  140.  
  141.    What to look for...
  142.    -------------------
  143.  
  144.       The wide range of compression options makes it difficult to rate which
  145.    archiver is the best since the fastest options usually offer very poor
  146.    compression and the maximum compression options are usually very slow
  147.    (and often with little actual savings).  Thus, we need to look for the
  148.    following:
  149.  
  150.       Category 1: Great compression size, ok speed.
  151.  
  152.          Look for an archiver that gets great compression size, but without
  153.          making you wait forever.  Waiting a little longer for a significant
  154.          improvement is OK, but it is not OK to wait a lot longer for only
  155.          a few more bytes saved.
  156.  
  157.       Category 2: Great compression speed, ok size.
  158.  
  159.          Look for an archiver that is very fast without sacrificing a lot in
  160.          compression size.
  161.  
  162.       Category 3: Absolute best compression size, speed doesn't matter.
  163.  
  164.          Just look for the archiver that compresses the smallest and ignore
  165.          how long it took to do it, or how long it will take to extract.
  166.  
  167.       Category 4: Great extraction speed, decent compression.
  168.  
  169.          Look for an archiver that can extract fast, but only if its
  170.          compression was good enough to make de-compression meaningful.
  171.  
  172.  
  173.       On each of the 12 test sets, I will rate the archivers and select a
  174.    first, second, and third place winner for each of the above categories.
  175.    Then, at the end, I will list the cumulative results.  However, since
  176.    archivers vary depending on the type of data compressed, look for the
  177.    best archiver on the type of data you use the most.
  178.  
  179.       Please note that the ratings are a bit subjective, so if you don't
  180.    like or trust my judgments, then take a good look at the raw numbers
  181.    yourself.
  182.  
  183.       Of course there are other factors to consider in archivers like
  184.    features, support, popularity, etc., but this particular comparison does
  185.    not specifically measure those items.
  186.  
  187.  
  188.  
  189.    The results...
  190.    --------------
  191.  
  192.  
  193.    ---- TEST SET  1 -----------------------------------------------------
  194.  
  195.    Files from the Apogee game Major Stryker Ver 1.3.  The two large files
  196.      contain a lot of graphical data.
  197.  
  198.    catalog.exe      27,019 bytes
  199.    file_id.diz         347 bytes
  200.    license.doc       4,490 bytes
  201.    major.exe        84,250 bytes
  202.    order.frm         2,855 bytes
  203.    volume1a.ms1    890,069 bytes
  204.    volume1b.ms1    989,752 bytes
  205.                    -------
  206.                  1,998,782 total bytes in 7 files
  207.  
  208.  
  209.             DCCMP run as: "DCCMP -3 -ts -otest1.rsl archive test1 f:\test1\*.* f:\temp *.*"
  210.    Batch ARCHIVE was run:       3 times...
  211. Memory free for programs:     517 K
  212.             Time per run: 0:54:10
  213.       Total time elapsed: 2:42:31
  214.  
  215.  
  216. Compression, sorted by: Speed
  217.  
  218. Program   Description             Ticks   Min:Secs  Size      Relative
  219. ========  ======================  ======  ========  ========  ========
  220. PKZIP     2.04g  -a -es              440  000:24.2    653215      1.00
  221. ARJ       2.39f   a -m4              642  000:35.3    657989      1.46
  222. PKZIP     2.04g  -a -ef              697  000:38.3    594145      1.58
  223. ARJ       2.39f   a -m3              805  000:44.2    601564      1.83
  224. ZIP       1.9    -1                  997  000:54.8    565174      2.26
  225. PKZIP     2.04g  -a -en             1027  000:56.4    564845      2.33
  226. ZIP       1.9    -3                 1126  001: 1.9    548431      2.56
  227. SQZ       1.08.3e a -q9             1261  001: 9.3    582876      2.87
  228. HYPER     2.5    -a                 1352  001:14.3    630809      3.07
  229. SQZ       1.08.3e a -q6             1501  001:22.5    550138      3.41
  230. ZIP       1.9    -6                 1561  001:25.8    538085      3.55
  231. LHA       2.52    a -n              1637  001:29.9    582538      3.72
  232. ARJ       2.39f   a -m1             1751  001:36.2    574631      3.98
  233. SQZ       1.08.3e a -m1             1851  001:41.7    548872      4.20
  234. PKZIP     2.04g  -a -ex             1894  001:44.1    536813      4.30
  235. ARJ       2.39f   a -jm1            2158  001:58.6    573139      4.90
  236. SQZ       1.08.3e a -q3             2543  002:19.7    542306      5.78
  237. ARJ       2.39f   a -jm             4363  003:59.7    571216      9.91
  238. ZIP       1.9    -9                 4917  004:30.2    534439     11.17
  239. SQZ       1.08.3e a -q0             6337  005:48.2    540159     14.39
  240. HAP3      3.00    a                 6432  005:53.4    629815     14.61
  241.  
  242.   >> Notice how there are several groups of performance here. They are:
  243.  
  244.        1) 650K size: PKZIP:es, ARJ:m4
  245.  
  246.           ... Poor compression, but very fast.  PKZIP:es is the pick here
  247.               because it is significantly faster and even has slightly better
  248.               compression size than ARJ:m4.
  249.  
  250.        2) 600K size: PKZIP:ef, ARJ:m3
  251.  
  252.           ... Better compression, but slower.  Notice how PKZIP:ef gets the
  253.               better level of compression while being almost as fast as
  254.               ARJ:m4 from level 1.
  255.  
  256.        3) 560K size: PKZIP:en, ZIP:1
  257.  
  258.           ... Good compression, slower still.  These two are about the same
  259.               at this level.  Remember, I didn't try testing ARJ:m2.
  260.  
  261.        4) 548K size: ZIP:3
  262.  
  263.           ... Inbetween levels.  Here PKZIP does not offer the flexibility
  264.               of ZIP to choose such a variety of levels.  Indeed, I did not
  265.               even test all of ZIP's 9 levels.
  266.  
  267.        5) 537K size: PKZIP:ex, ZIP:6
  268.  
  269.           ... Great compression, even slower.  This looks like ZIP:7 (level
  270.               not tested) would have been almost equal to PKZIP:ex.
  271.  
  272.        6) 534K size: ZIP:9
  273.  
  274.           ... Best compression, but very slow.  To get 2000 more bytes
  275.               compressed, we had to wait almost 3 minutes longer.  But at
  276.               least ZIP:9 offered the option.
  277.  
  278.   >> Notice how ARJ falls out of the competition after ARJ:m3.  ARJ:m1 takes
  279.      almost twice as long as PKZIP:en to get poorer compression size.  ARJ:jm1
  280.      and ARJ:jm take even longer, but still don't compress better than PKZIP:en.
  281.  
  282.   >> SQZ does get good compression, but always lags significantly behind PKZIP
  283.      and ZIP in speed for the same level of compression.  And, although SQZ:q9
  284.      takes 4 minutes longer, it still can't manage to beat PKZIP:ex in
  285.      compression size.
  286.  
  287.   >> LHA's one level of compression is easily out done by both PKZIP and ZIP
  288.      in both speed and size.
  289.  
  290.   >> HYPER is slow and compresses poorly.
  291.  
  292.   >> HAP is Very slow and compresses poorly.
  293.  
  294.  
  295. Compression, sorted by: Size
  296.  
  297. Program   Description             Ticks   Min:Secs  Size      Relative
  298. ========  ======================  ======  ========  ========  ========
  299. ZIP       1.9    -9                 4917  004:30.2    534439      1.00
  300. PKZIP     2.04g  -a -ex             1894  001:44.1    536813      1.00
  301. ZIP       1.9    -6                 1561  001:25.8    538085      1.01
  302. SQZ       1.08.3e a -q0             6337  005:48.2    540159      1.01
  303. SQZ       1.08.3e a -q3             2543  002:19.7    542306      1.01
  304. ZIP       1.9    -3                 1126  001: 1.9    548431      1.03
  305. SQZ       1.08.3e a -m1             1851  001:41.7    548872      1.03
  306. SQZ       1.08.3e a -q6             1501  001:22.5    550138      1.03
  307. PKZIP     2.04g  -a -en             1027  000:56.4    564845      1.06
  308. ZIP       1.9    -1                  997  000:54.8    565174      1.06
  309. ARJ       2.39f   a -jm             4363  003:59.7    571216      1.07
  310. ARJ       2.39f   a -jm1            2158  001:58.6    573139      1.07
  311. ARJ       2.39f   a -m1             1751  001:36.2    574631      1.08
  312. LHA       2.52    a -n              1637  001:29.9    582538      1.09
  313. SQZ       1.08.3e a -q9             1261  001: 9.3    582876      1.09
  314. PKZIP     2.04g  -a -ef              697  000:38.3    594145      1.11
  315. ARJ       2.39f   a -m3              805  000:44.2    601564      1.13
  316. HAP3      3.00    a                 6432  005:53.4    629815      1.18
  317. HYPER     2.5    -a                 1352  001:14.3    630809      1.18
  318. PKZIP     2.04g  -a -es              440  000:24.2    653215      1.22
  319. ARJ       2.39f   a -m4              642  000:35.3    657989      1.23
  320.  
  321.  
  322. Extraction, sorted by: Speed
  323.  
  324. Program   Description             Ticks   Min:Secs  Relative
  325. ========  ======================  ======  ========  ========
  326. PKUNZIP   2.04g  -e (-ex)            183  000:10.1      1.00
  327. PKUNZIP   2.04g  -e (-en)            194  000:10.7      1.06
  328. PKUNZIP   2.04g  -e (-ef)            208  000:11.4      1.13
  329. PKUNZIP   2.04g  -e (-es)            219  000:12.0      1.20
  330. LHA       2.52    e -n               269  000:14.8      1.47
  331. ARJ       2.39f   e (-jm1)           285  000:15.7      1.55
  332. ARJ       2.39f   e (-jm)            292  000:16.0      1.60
  333. ARJ       2.39f   e (-m3)            296  000:16.3      1.62
  334. ARJ       2.39f   e (-m1)            297  000:16.3      1.62
  335. ARJ       2.39f   e (-m4)            324  000:17.8      1.77
  336. SQZ       1.08.3e e (-q0)            339  000:18.6      1.85
  337. SQZ       1.08.3e e (-q3)            350  000:19.2      1.91
  338. SQZ       1.08.3e e (-m1)            357  000:19.6      1.95
  339. SQZ       1.08.3e e (-q6)            360  000:19.8      1.96
  340. SQZ       1.08.3e e (-q9)            380  000:20.9      2.07
  341. UNZIP     5.00   -j (-9)             590  000:32.4      3.22
  342. UNZIP     5.00   -j (-6)             610  000:33.5      3.33
  343. UNZIP     5.00   -j (-1)             631  000:34.7      3.45
  344. UNZIP     5.00   -j (-3)             641  000:35.2      3.50
  345. HYPER     2.5    -x                  663  000:36.4      3.62
  346. PAH3      3.00    e                 6280  005:45.1     34.26
  347.  
  348.   >> The quality of extraction code is clearly shown here with PKUNZIP
  349.      being the best.  LHA, ARJ, and SQZ follow up with respectable
  350.      performance.
  351.  
  352.   >> But while ZIP might have been on par with PKZIP in compression,  it
  353.      clearly falls behind in de-compression being over 3 times slower.
  354.  
  355.   >> And PAH is extremely slow.  Look at it!  Almost 6 minutes compared
  356.      to PKUNZIP's 10 seconds!  This either shows very poor code or a
  357.      significantly different algorithm than anyone else.  But I don't
  358.      think it's poor code.  It would be hard to be THAT poor even if one
  359.      tried.  Moreover, the size of the HAP and PAH executables seem to
  360.      indicate it was written in assembler.  The question is then, what
  361.      algorithm is it using?  Perhaps it uses LZ sliding window combined
  362.      with arithmetic coding?
  363.  
  364.   >> Also notice that PAH's de-compression takes about the same amount of
  365.      time as HAP's compression, while everybody else was considerably faster
  366.      at de-compression the compression.
  367.  
  368.                              ╓──────────────────╖
  369.                              ║  Winners Set  1  ║
  370.          ╓───────────────────╨──────────────────╨──────────────────╖
  371.          ║ Category 1 (size)    : PKZIP best, then ZIP,   then SQZ ║
  372.          ║ Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP ║
  373.          ║ Category 3 (abs size): ZIP   best, then PKZIP, then SQZ ║
  374.          ║ Category 4 (extract) : PKZIP best, then ARJ,   then SQZ ║
  375.          ╙─────────────────────────────────────────────────────────╜
  376.  
  377.  
  378.  
  379.    ---- TEST SET  2 -----------------------------------------------------
  380.  
  381.    The last publicly available source code to DWC versions A5.12 & A4.95.
  382.      These files are from the official source code distribution archive
  383.      A495-512.DWC
  384.  
  385.    dwc                 768 bytes
  386.    dwc.c           163,840 bytes
  387.    dwcmisc.asm       4,096 bytes
  388.    dwcmisc.c         2,816 bytes
  389.    dwcmod.c         10,752 bytes
  390.    dwcsfx.c         41,472 bytes
  391.    dwcsize.asm      15,616 bytes
  392.    dwcsize.c         7,680 bytes
  393.    dwcspeed.asm     11,520 bytes
  394.    dwcspeed.c        6,400 bytes
  395.    dwcunc.asm       16,000 bytes
  396.    dwcunc.c          8,320 bytes
  397.    dwcv.c           17,536 bytes
  398.    dwcwild.c         8,192 bytes
  399.    header              256 bytes
  400.    makesfx.c        14,208 bytes
  401.    source.doc       33,920 bytes
  402.                    -------
  403.                    363,392 total bytes in 17 files
  404.  
  405.             DCCMP run as: "DCCMP -3 -ts -otest2.rsl archive test2 f:\test2\*.* f:\temp *.*"
  406.    Batch ARCHIVE was run:       3 times...
  407. Memory free for programs:     517 K
  408.             Time per run: 0:07:50
  409.       Total time elapsed: 0:23:32
  410.  
  411.  
  412. Compression, sorted by: Speed
  413.  
  414. Program   Description             Ticks   Min:Secs  Size      Relative
  415. ========  ======================  ======  ========  ========  ========
  416. PKZIP     2.04g  -a -es               58  000: 3.2    115708      1.00
  417. PKZIP     2.04g  -a -ef               93  000: 5.1     99284      1.59
  418. PKZIP     2.04g  -a -en              121  000: 6.6     95573      2.08
  419. ARJ       2.39f   a -m4              122  000: 6.7    113165      2.10
  420. ARJ       2.39f   a -m3              143  000: 7.9    101371      2.46
  421. ZIP       1.9    -1                  158  000: 8.7     99725      2.72
  422. ZIP       1.9    -3                  178  000: 9.8     97075      3.05
  423. PKZIP     2.04g  -a -ex              187  000:10.3     94376      3.21
  424. SQZ       1.08.3e a -q9              195  000:10.7    101497      3.35
  425. HYPER     2.5    -a                  211  000:11.6    103782      3.62
  426. ZIP       1.9    -6                  218  000:12.0     95211      3.74
  427. ARJ       2.39f   a -m1              253  000:13.9     95823      4.34
  428. SQZ       1.08.3e a -q6              260  000:14.3     95781      4.47
  429. ARJ       2.39f   a -jm1             265  000:14.6     95631      4.55
  430. LHA       2.52    a -n               307  000:16.9     99219      5.27
  431. SQZ       1.08.3e a -m1              332  000:18.2     95305      5.69
  432. SQZ       1.08.3e a -q3              386  000:21.2     94086      6.63
  433. ARJ       2.39f   a -jm              423  000:23.2     95216      7.25
  434. ZIP       1.9    -9                  510  000:28.0     94478      8.75
  435. SQZ       1.08.3e a -q0              767  000:42.1     93601     13.16
  436. HAP3      3.00    a                  805  000:44.2     84126     13.80
  437.  
  438.   >> With this test set (all C source code and English documentation) we have
  439.      a different mix as compared to the first test set.
  440.  
  441.   >> Notice that while PKZIP has only four levels, three of the levels are
  442.      faster than any other archiver (albeit, the third level just barely).
  443.  
  444.   >> While PKZIP:es does compress the poorest, it does compress twice as fast
  445.      as ARJ:m4 and only loses 2500 bytes in size.
  446.  
  447.   >> Notice that all four levels of PKZIP are the quickest to reach the
  448.      respective compression sizes that they achieve.  For example, ZIP:6 takes
  449.      twice as long as PKZIP:en to reach 95000 bytes in size.  And SQZ:q3 takes
  450.      twice as long as PKZIP:ex to reach 94000 bytes.
  451.  
  452.   >> If you're willing to wait 4 times as long as PKZIP:ex, then SQZ:q0 will
  453.      squeeze out 800 bytes more for you, but who cares?!
  454.  
  455.   >> If you forget about PKZIP for a moment, you'll see that ARJ and ZIP are
  456.      about equal in this test set, with SQZ coming in close behind.
  457.  
  458.   >> But look at HAP's compression.  While everybody else is taking more and
  459.      more time to simply approach 93000 bytes, HAP simply skips by them and
  460.      compresses to 84000 bytes.  A significant improvement.  Obviously,  HAP
  461.      uses a different algorithm.  It's a slow algorithm, but for some types
  462.      of data, it compresses significantly better than any other archiver.
  463.  
  464.   >> Forget HYPER and LHA (at least in this test case), they are easily
  465.      outdone by the other archivers.
  466.  
  467.  
  468. Compression, sorted by: Size
  469.  
  470. Program   Description             Ticks   Min:Secs  Size      Relative
  471. ========  ======================  ======  ========  ========  ========
  472. HAP3      3.00    a                  805  000:44.2     84126      1.00
  473. SQZ       1.08.3e a -q0              767  000:42.1     93601      1.11
  474. SQZ       1.08.3e a -q3              386  000:21.2     94086      1.12
  475. PKZIP     2.04g  -a -ex              187  000:10.3     94376      1.12
  476. ZIP       1.9    -9                  510  000:28.0     94478      1.12
  477. ZIP       1.9    -6                  218  000:12.0     95211      1.13
  478. ARJ       2.39f   a -jm              423  000:23.2     95216      1.13
  479. SQZ       1.08.3e a -m1              332  000:18.2     95305      1.13
  480. PKZIP     2.04g  -a -en              121  000: 6.6     95573      1.14
  481. ARJ       2.39f   a -jm1             265  000:14.6     95631      1.14
  482. SQZ       1.08.3e a -q6              260  000:14.3     95781      1.14
  483. ARJ       2.39f   a -m1              253  000:13.9     95823      1.14
  484. ZIP       1.9    -3                  178  000: 9.8     97075      1.15
  485. LHA       2.52    a -n               307  000:16.9     99219      1.18
  486. PKZIP     2.04g  -a -ef               93  000: 5.1     99284      1.18
  487. ZIP       1.9    -1                  158  000: 8.7     99725      1.19 
  488. ARJ       2.39f   a -m3              143  000: 7.9    101371      1.20
  489. SQZ       1.08.3e a -q9              195  000:10.7    101497      1.21
  490. HYPER     2.5    -a                  211  000:11.6    103782      1.23
  491. ARJ       2.39f   a -m4              122  000: 6.7    113165      1.35
  492. PKZIP     2.04g  -a -es               58  000: 3.2    115708      1.38
  493.  
  494.  
  495. Extraction, sorted by: Speed
  496.  
  497. Program   Description             Ticks   Min:Secs  Relative
  498. ========  ======================  ======  ========  ========
  499. PKUNZIP   2.04g  -e (-ef)             34  000: 1.9      1.00
  500. PKUNZIP   2.04g  -e (-en)             34  000: 1.9      1.00
  501. PKUNZIP   2.04g  -e (-ex)             36  000: 2.0      1.07
  502. PKUNZIP   2.04g  -e (-es)             48  000: 2.6      1.41
  503. LHA       2.52    e -n                57  000: 3.1      1.69
  504. SQZ       1.08.3e e (-m1)             67  000: 3.7      1.99
  505. SQZ       1.08.3e e (-q0)             68  000: 3.7      2.01
  506. SQZ       1.08.3e e (-q3)             68  000: 3.7      2.01
  507. SQZ       1.08.3e e (-q6)             70  000: 3.8      2.07
  508. SQZ       1.08.3e e (-q9)             74  000: 4.1      2.18
  509. ARJ       2.39f   e (-jm)             76  000: 4.2      2.25
  510. ARJ       2.39f   e (-jm1)            77  000: 4.2      2.26
  511. ARJ       2.39f   e (-m1)             79  000: 4.3      2.32
  512. ARJ       2.39f   e (-m3)             81  000: 4.5      2.39
  513. ARJ       2.39f   e (-m4)             87  000: 4.8      2.57
  514. UNZIP     5.00   -j (-9)             115  000: 6.3      3.40
  515. UNZIP     5.00   -j (-3)             125  000: 6.9      3.68
  516. UNZIP     5.00   -j (-6)             126  000: 6.9      3.72
  517. HYPER     2.5    -x                  142  000: 7.8      4.19
  518. UNZIP     5.00   -j (-1)             148  000: 8.1      4.36
  519. PAH3      3.00    e                  884  000:48.6     26.01
  520.  
  521.   >> These results are about the same as the first test set except this time
  522.      SQZ extracts a little faster than ARJ.
  523.  
  524.   >> Again, PAH takes a very long time to de-compress and actually takes longer
  525.      then HAP took to compress.
  526.  
  527.                              ╓──────────────────╖
  528.                              ║  Winners Set  2  ║
  529.          ╓───────────────────╨──────────────────╨──────────────────╖
  530.          ║ Category 1 (size)    : PKZIP best, then SQZ, then ZIP   ║
  531.          ║ Category 2 (speed)   : PKZIP best, then ZIP, then ARJ   ║
  532.          ║ Category 3 (abs size): HAP   best, then SQZ, then PKZIP ║
  533.          ║ Category 4 (extract) : PKZIP best, then SQZ, then ARJ   ║
  534.          ╙─────────────────────────────────────────────────────────╜
  535.  
  536.  
  537.  
  538.    ---- TEST SET  3 -----------------------------------------------------
  539.  
  540.    A 16 bit-per-pixel true color digitized image of the grand canyon.
  541.  
  542.    canyon.img      359,934 bytes
  543.  
  544.  
  545.             DCCMP run as: "DCCMP -3 -ts -otest3.rsl archive test3 f:\test3\*.* f:\temp *.*"
  546.    Batch ARCHIVE was run:       3 times...
  547. Memory free for programs:     517 K
  548.             Time per run: 0:09:22
  549.       Total time elapsed: 0:28:06
  550.  
  551.  
  552. Compression, sorted by: Speed
  553.  
  554. Program   Description             Ticks   Min:Secs  Size      Relative
  555. ========  ======================  ======  ========  ========  ========
  556. PKZIP     2.04g  -a -es               83  000: 4.6    211754      1.00
  557. ARJ       2.39f   a -m4              138  000: 7.6    215702      1.66
  558. PKZIP     2.04g  -a -ef              144  000: 7.9    193769      1.74
  559. ARJ       2.39f   a -m3              170  000: 9.3    190086      2.06
  560. ZIP       1.9    -1                  238  000:13.1    187757      2.87
  561. HYPER     2.5    -a                  284  000:15.6    190058      3.42
  562. PKZIP     2.04g  -a -en              291  000:16.0    184117      3.51
  563. SQZ       1.08.3e a -q9              292  000:16.0    193573      3.52
  564. ZIP       1.9    -3                  321  000:17.6    186185      3.87
  565. ARJ       2.39f   a -jm1             339  000:18.6    184832      4.09
  566. ZIP       1.9    -6                  339  000:18.6    185210      4.09
  567. ARJ       2.39f   a -m1              339  000:18.6    184839      4.09
  568. ZIP       1.9    -9                  342  000:18.8    185217      4.13
  569. ARJ       2.39f   a -jm              344  000:18.9    184832      4.14
  570. LHA       2.52    a -n               353  000:19.4    187678      4.26
  571. PKZIP     2.04g  -a -ex              374  000:20.5    183879      4.51
  572. SQZ       1.08.3e a -q6              419  000:23.0    185262      5.05
  573. SQZ       1.08.3e a -m1              505  000:27.7    185658      6.09
  574. SQZ       1.08.3e a -q3              514  000:28.2    184253      6.20
  575. SQZ       1.08.3e a -q0              527  000:29.0    184252      6.36
  576. HAP3      3.00    a                  850  000:46.7    152565     10.24
  577.  
  578.   >> Again, the fastest version of PKZIP (PKZIP:es) not only is 66% faster
  579.      than the fastest version of ARJ (ARJ:m4), it also compresses better.
  580.  
  581.   >> Indeed, PKZIP:ef is about the same speed as ARJ:m4, but significantly
  582.      out compresses it.
  583.  
  584.   >> The first archiver to compress down to the 184000 level is PKZIP:en
  585.      with ARJ:jm1 coming in second.
  586.  
  587.   >> Except for HAP which takes more than twice as long, PKZIP:ex gets the
  588.      best compression.
  589.  
  590.   >> But, if you're willing to wait, HAP is the only choice you have to get
  591.      significantly better compression.
  592.  
  593.   >> Again, neither HYPER nor LHA offer any reason to choose them over the
  594.      other archivers.
  595.  
  596.  
  597. Compression, sorted by: Size
  598.  
  599. Program   Description             Ticks   Min:Secs  Size      Relative
  600. ========  ======================  ======  ========  ========  ========
  601. HAP3      3.00    a                  850  000:46.7    152565      1.00
  602. PKZIP     2.04g  -a -ex              374  000:20.5    183879      1.21
  603. PKZIP     2.04g  -a -en              291  000:16.0    184117      1.21
  604. SQZ       1.08.3e a -q0              527  000:29.0    184252      1.21
  605. SQZ       1.08.3e a -q3              514  000:28.2    184253      1.21
  606. ARJ       2.39f   a -jm1             339  000:18.6    184832      1.21
  607. ARJ       2.39f   a -jm              344  000:18.9    184832      1.21
  608. ARJ       2.39f   a -m1              339  000:18.6    184839      1.21
  609. ZIP       1.9    -6                  339  000:18.6    185210      1.21
  610. ZIP       1.9    -9                  342  000:18.8    185217      1.21
  611. SQZ       1.08.3e a -q6              419  000:23.0    185262      1.21
  612. SQZ       1.08.3e a -m1              505  000:27.7    185658      1.22
  613. ZIP       1.9    -3                  321  000:17.6    186185      1.22
  614. LHA       2.52    a -n               353  000:19.4    187678      1.23
  615. ZIP       1.9    -1                  238  000:13.1    187757      1.23
  616. HYPER     2.5    -a                  284  000:15.6    190058      1.25
  617. ARJ       2.39f   a -m3              170  000: 9.3    190086      1.25
  618. SQZ       1.08.3e a -q9              292  000:16.0    193573      1.27
  619. PKZIP     2.04g  -a -ef              144  000: 7.9    193769      1.27
  620. PKZIP     2.04g  -a -es               83  000: 4.6    211754      1.39
  621. ARJ       2.39f   a -m4              138  000: 7.6    215702      1.41
  622.  
  623.  
  624. Extraction, sorted by: Speed
  625.  
  626. Program   Description             Ticks   Min:Secs  Relative
  627. ========  ======================  ======  ========  ========
  628. PKUNZIP   2.04g  -e (-en)             35  000: 1.9      1.00
  629. PKUNZIP   2.04g  -e (-ex)             36  000: 2.0      1.04
  630. PKUNZIP   2.04g  -e (-ef)             37  000: 2.0      1.07
  631. PKUNZIP   2.04g  -e (-es)             49  000: 2.7      1.42
  632. LHA       2.52    e -n                68  000: 3.7      1.96
  633. ARJ       2.39f   e (-m1)             72  000: 4.0      2.07
  634. ARJ       2.39f   e (-jm)             72  000: 4.0      2.07
  635. ARJ       2.39f   e (-jm1)            72  000: 4.0      2.07
  636. ARJ       2.39f   e (-m3)             73  000: 4.0      2.10
  637. SQZ       1.08.3e e (-q0)             85  000: 4.7      2.45
  638. SQZ       1.08.3e e (-m1)             88  000: 4.8      2.53
  639. SQZ       1.08.3e e (-q6)             89  000: 4.9      2.54
  640. ARJ       2.39f   e (-m4)             89  000: 4.9      2.56
  641. SQZ       1.08.3e e (-q9)             90  000: 4.9      2.59
  642. SQZ       1.08.3e e (-q3)             93  000: 5.1      2.66
  643. UNZIP     5.00   -j (-6)             169  000: 9.3      4.84
  644. UNZIP     5.00   -j (-9)             172  000: 9.5      4.92
  645. UNZIP     5.00   -j (-3)             178  000: 9.8      5.10
  646. UNZIP     5.00   -j (-1)             195  000:10.7      5.57
  647. HYPER     2.5    -x                  200  000:11.0      5.71
  648. PAH3      3.00    e                 1006  000:55.3     28.76
  649.  
  650.   >> PKUNZIP is twice as fast extracting as ARJ, five times as fast as
  651.      UNZIP, and 28 times as fast as PAH!
  652.  
  653.   >> Again, PAH takes longer to de-compress than HAP took to compress.
  654.      Perhaps PAH isn't as optimized as HAP is.
  655.  
  656.                              ╓──────────────────╖
  657.                              ║  Winners Set  3  ║
  658.          ╓───────────────────╨──────────────────╨──────────────────╖
  659.          ║ Category 1 (size)    : PKZIP best, then ARJ,   then ZIP ║
  660.          ║ Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP ║
  661.          ║ Category 3 (abs size): HAP   best, then PKZIP, then SQZ ║
  662.          ║ Category 4 (extract) : PKZIP best, then ARJ,   then SQZ ║
  663.          ╙─────────────────────────────────────────────────────────╜
  664.  
  665.  
  666.  
  667.    ---- TEST SET  4 -----------------------------------------------------
  668.  
  669.    Files that came with the ARJ 2.30 self-extracting archive, ARJ230.EXE.
  670.  
  671.     arj.doc         131,116 bytes
  672.     arj.exe         104,614 bytes
  673.     arjback.bat         137 bytes
  674.     arjrest.bat         163 bytes
  675.     arjsort.bat       3,311 bytes
  676.     arjsort.com       6,499 bytes
  677.     arjsort.doc       3,145 bytes
  678.     arjupdat.bat        145 bytes
  679.     arj_bbs.doc       3,722 bytes
  680.     credit.crd        3,251 bytes
  681.     license.doc      14,729 bytes
  682.     orderfrm.doc      5,021 bytes
  683.     readme.doc        2,440 bytes
  684.     rearj.cfg           439 bytes
  685.     rearj.doc        19,815 bytes
  686.     rearj.exe        37,762 bytes
  687.     rearjall.bat        344 bytes
  688.     register.exe     12,492 bytes
  689.     sysop.doc         1,329 bytes
  690.     technote.doc      4,764 bytes
  691.     update.doc       22,783 bytes
  692.     whatsnew.doc     10,719 bytes
  693.     why_arj.doc       5,769 bytes
  694.                     -------
  695.                     394,509 total bytes in 23 files
  696.  
  697.             DCCMP run as: "DCCMP -3 -ts -otest4.rsl archive test4 f:\test4\*.* f:\temp *.*"
  698.    Batch ARCHIVE was run:       3 times...
  699. Memory free for programs:     517 K
  700.             Time per run: 0:10:27
  701.       Total time elapsed: 0:31:23
  702.  
  703.  
  704. Compression, sorted by: Speed
  705.  
  706. Program   Description             Ticks   Min:Secs  Size      Relative
  707. ========  ======================  ======  ========  ========  ========
  708. PKZIP     2.04g  -a -es              101  000: 5.5    205750      1.00
  709. PKZIP     2.04g  -a -ef              136  000: 7.5    191047      1.35
  710. ARJ       2.39f   a -m4              165  000: 9.1    210368      1.63
  711. PKZIP     2.04g  -a -en              184  000:10.1    185718      1.82
  712. ARJ       2.39f   a -m3              208  000:11.4    191698      2.06
  713. ZIP       1.9    -1                  238  000:13.1    189787      2.35
  714. PKZIP     2.04g  -a -ex              258  000:14.2    184524      2.55
  715. ZIP       1.9    -3                  261  000:14.3    187154      2.58
  716. SQZ       1.08.3e a -q9              291  000:16.0    190488      2.88
  717. ZIP       1.9    -6                  295  000:16.2    185830      2.91
  718. ARJ       2.39f   a -jm              299  000:16.4    185236      2.96
  719. ARJ       2.39f   a -jm1             302  000:16.6    185235      2.98
  720. HYPER     2.5    -a                  316  000:17.4    198495      3.12
  721. ARJ       2.39f   a -m1              318  000:17.5    185308      3.14
  722. SQZ       1.08.3e a -q6              321  000:17.6    184772      3.17
  723. ZIP       1.9    -9                  322  000:17.7    185709      3.18
  724. LHA       2.52    a -n               334  000:18.4    190668      3.30
  725. SQZ       1.08.3e a -m1              403  000:22.1    184424      3.98
  726. SQZ       1.08.3e a -q3              457  000:25.1    183571      4.51
  727. SQZ       1.08.3e a -q0              462  000:25.4    183490      4.57
  728. HAP3      3.00    a                 1439  001:19.1    176783     14.20
  729.  
  730.   >> Here, two versions of PKZIP are not only faster than the fastest version
  731.      of ARJ, but also beat it significantly in size.
  732.  
  733.   >> PKZIP is the first to reach the 205000 level, the first to reach the
  734.      191000 level, the first to reach the 185000 level and the first  to reach
  735.      the 184000 level!
  736.  
  737.   >> Notice that neither ARJ nor ZIP can beat PKZIP:ex in compression, even if
  738.      they take longer.
  739.  
  740.   >> But, if you're willing to wait almost twice as long, then SQZ:q0 will save
  741.      you 1000 bytes over PKZIP:ex.
  742.  
  743.   >> And, if you're willing to wait eight times longer than PKZIP:en, then HAP
  744.      will save you 9000 bytes.  This is a significant savings, but eight times
  745.      longer?!  And de-compression will be 36 times longer!!!
  746.  
  747.   >> Forget HYPER and LHA.
  748.  
  749.  
  750. Compression, sorted by: Size
  751.  
  752. Program   Description             Ticks   Min:Secs  Size      Relative
  753. ========  ======================  ======  ========  ========  ========
  754. HAP3      3.00    a                 1439  001:19.1    176783      1.00
  755. SQZ       1.08.3e a -q0              462  000:25.4    183490      1.04
  756. SQZ       1.08.3e a -q3              457  000:25.1    183571      1.04
  757. SQZ       1.08.3e a -m1              403  000:22.1    184424      1.04
  758. PKZIP     2.04g  -a -ex              258  000:14.2    184524      1.04
  759. SQZ       1.08.3e a -q6              321  000:17.6    184772      1.05
  760. ARJ       2.39f   a -jm1             302  000:16.6    185235      1.05
  761. ARJ       2.39f   a -jm              299  000:16.4    185236      1.05
  762. ARJ       2.39f   a -m1              318  000:17.5    185308      1.05
  763. ZIP       1.9    -9                  322  000:17.7    185709      1.05
  764. PKZIP     2.04g  -a -en              184  000:10.1    185718      1.05
  765. ZIP       1.9    -6                  295  000:16.2    185830      1.05
  766. ZIP       1.9    -3                  261  000:14.3    187154      1.06
  767. ZIP       1.9    -1                  238  000:13.1    189787      1.07
  768. SQZ       1.08.3e a -q9              291  000:16.0    190488      1.08
  769. LHA       2.52    a -n               334  000:18.4    190668      1.08
  770. PKZIP     2.04g  -a -ef              136  000: 7.5    191047      1.08
  771. ARJ       2.39f   a -m3              208  000:11.4    191698      1.08
  772. HYPER     2.5    -a                  316  000:17.4    198495      1.12
  773. PKZIP     2.04g  -a -es              101  000: 5.5    205750      1.16
  774. ARJ       2.39f   a -m4              165  000: 9.1    210368      1.19 
  775.  
  776.  
  777. Extraction, sorted by: Speed
  778.  
  779. Program   Description             Ticks   Min:Secs  Relative
  780. ========  ======================  ======  ========  ========
  781. PKUNZIP   2.04g  -e (-en)             47  000: 2.6      1.00
  782. PKUNZIP   2.04g  -e (-ex)             48  000: 2.6      1.03
  783. PKUNZIP   2.04g  -e (-ef)             65  000: 3.6      1.40
  784. PKUNZIP   2.04g  -e (-es)             77  000: 4.2      1.64
  785. LHA       2.52    e -n               102  000: 5.6      2.17
  786. SQZ       1.08.3e e (-m1)            104  000: 5.7      2.22
  787. SQZ       1.08.3e e (-q6)            104  000: 5.7      2.23
  788. SQZ       1.08.3e e (-q0)            106  000: 5.8      2.26
  789. SQZ       1.08.3e e (-q9)            109  000: 6.0      2.32
  790. ARJ       2.39f   e (-jm)            109  000: 6.0      2.33
  791. SQZ       1.08.3e e (-q3)            110  000: 6.0      2.35
  792. ARJ       2.39f   e (-m1)            113  000: 6.2      2.41
  793. ARJ       2.39f   e (-m3)            114  000: 6.3      2.43
  794. ARJ       2.39f   e (-jm1)           114  000: 6.3      2.43
  795. ARJ       2.39f   e (-m4)            124  000: 6.8      2.65
  796. UNZIP     5.00   -j (-6)             188  000:10.3      4.00
  797. UNZIP     5.00   -j (-3)             190  000:10.4      4.06
  798. UNZIP     5.00   -j (-9)             199  000:10.9      4.25
  799. UNZIP     5.00   -j (-1)             212  000:11.6      4.52
  800. HYPER     2.5    -x                  272  000:14.9      5.79
  801. PAH3      3.00    e                 1717  001:34.3     36.54
  802.  
  803.   >> Again, PKUNZIP is twice as fast extracting as ARJ, four times faster than
  804.      UNZIP, and 36 times faster than PAH!  And PAH is slower than HAP.
  805.  
  806.  
  807.                              ╓──────────────────╖
  808.                              ║  Winners Set  4  ║
  809.          ╓───────────────────╨──────────────────╨──────────────────╖
  810.          ║ Category 1 (size)    : PKZIP best, then ARJ, then SQZ   ║
  811.          ║ Category 2 (speed)   : PKZIP best, then ARJ, then ZIP   ║
  812.          ║ Category 3 (abs size): HAP   best, then SQZ, then PKZIP ║
  813.          ║ Category 4 (extract) : PKZIP best, then SQZ, then ARJ   ║
  814.          ╙─────────────────────────────────────────────────────────╜
  815.  
  816.  
  817.  
  818.    ---- TEST SET  5 -----------------------------------------------------
  819.  
  820.    Files that came with the ZIP 2.04g self-extracting archive, PKZ204g.EXE.
  821.  
  822.     addendum.doc     19,361 bytes
  823.     authveri.frm      2,330 bytes
  824.     hints.txt        14,109 bytes
  825.     license.doc       3,707 bytes
  826.     manual.doc      202,252 bytes
  827.     ombudsmn.asp        591 bytes
  828.     order.doc         3,304 bytes
  829.     pkunzip.exe      29,378 bytes
  830.     pkunzjr.com       2,750 bytes
  831.     pkzip.exe        42,166 bytes
  832.     pkzipfix.exe      7,687 bytes
  833.     readme.doc          741 bytes
  834.     sharewar.doc        573 bytes
  835.     v204g.new        10,704 bytes
  836.     whatsnew.204      2,430 bytes
  837.     zip2exe.exe      27,319 bytes
  838.                     -------
  839.                     369,402 total bytes in 16 files
  840.  
  841.  
  842.             DCCMP run as: "DCCMP -3 -ts -otest5.rsl archive test5 f:\test5\*.* f:\temp *.*"
  843.    Batch ARCHIVE was run:       3 times...
  844. Memory free for programs:     517 K
  845.             Time per run: 0:08:56
  846.       Total time elapsed: 0:26:50
  847.  
  848.  
  849. Compression, sorted by: Speed
  850.  
  851. Program   Description             Ticks   Min:Secs  Size      Relative
  852. ========  ======================  ======  ========  ========  ========
  853. PKZIP     2.04g  -a -es               85  000: 4.7    202258      1.00
  854. PKZIP     2.04g  -a -ef              139  000: 7.6    192176      1.63
  855. ARJ       2.39f   a -m4              151  000: 8.3    204075      1.77
  856. PKZIP     2.04g  -a -en              173  000: 9.5    187603      2.03
  857. ARJ       2.39f   a -m3              183  000:10.1    192558      2.14
  858. PKZIP     2.04g  -a -ex              232  000:12.7    186710      2.72
  859. ZIP       1.9    -1                  232  000:12.7    190853      2.73
  860. ZIP       1.9    -3                  233  000:12.8    188380      2.73
  861. SQZ       1.08.3e a -q9              267  000:14.7    192453      3.13
  862. ARJ       2.39f   a -jm1             286  000:15.7    187311      3.35
  863. ARJ       2.39f   a -m1              286  000:15.7    187352      3.36
  864. ZIP       1.9    -6                  293  000:16.1    186655      3.44
  865. HYPER     2.5    -a                  302  000:16.6    197280      3.54
  866. LHA       2.52    a -n               306  000:16.8    191378      3.59
  867. ARJ       2.39f   a -jm              309  000:17.0    187238      3.63
  868. SQZ       1.08.3e a -q6              312  000:17.1    187164      3.66
  869. ZIP       1.9    -9                  358  000:19.7    186430      4.20
  870. SQZ       1.08.3e a -m1              383  000:21.0    186397      4.49
  871. SQZ       1.08.3e a -q3              410  000:22.5    185635      4.81
  872. SQZ       1.08.3e a -q0              509  000:28.0    185511      5.96
  873. HAP3      3.00    a                 1563  001:25.9    177294     18.32
  874.  
  875.   >> Again, all four versions of PKZIP are the fastest to reach the levels
  876.      of compression that they reach.
  877.  
  878.   >> This time three archivers out-do PKZIP in absolute size, but ARJ is
  879.      not one of them, ZIP does so by less than 300 bytes, and SQZ takes more
  880.      than twice as long to save just 1200 bytes.
  881.  
  882.   >> Again, HAP gets 9000 bytes better compression than PKZIP:ex, but takes
  883.      six times as long and still suffers from terrible de-compression speed.
  884.  
  885.   >> Again, you can forget about HYPER and LHA.
  886.  
  887.  
  888. Compression, sorted by: Size
  889.  
  890. Program   Description             Ticks   Min:Secs  Size      Relative
  891. ========  ======================  ======  ========  ========  ========
  892. HAP3      3.00    a                 1563  001:25.9    177294      1.00
  893. SQZ       1.08.3e a -q0              509  000:28.0    185511      1.05
  894. SQZ       1.08.3e a -q3              410  000:22.5    185635      1.05
  895. SQZ       1.08.3e a -m1              383  000:21.0    186397      1.05
  896. ZIP       1.9    -9                  358  000:19.7    186430      1.05
  897. ZIP       1.9    -6                  293  000:16.1    186655      1.05
  898. PKZIP     2.04g  -a -ex              232  000:12.7    186710      1.05
  899. SQZ       1.08.3e a -q6              312  000:17.1    187164      1.06
  900. ARJ       2.39f   a -jm              309  000:17.0    187238      1.06
  901. ARJ       2.39f   a -jm1             286  000:15.7    187311      1.06
  902. ARJ       2.39f   a -m1              286  000:15.7    187352      1.06
  903. PKZIP     2.04g  -a -en              173  000: 9.5    187603      1.06
  904. ZIP       1.9    -3                  233  000:12.8    188380      1.06
  905. ZIP       1.9    -1                  232  000:12.7    190853      1.08
  906. LHA       2.52    a -n               306  000:16.8    191378      1.08
  907. PKZIP     2.04g  -a -ef              139  000: 7.6    192176      1.08
  908. SQZ       1.08.3e a -q9              267  000:14.7    192453      1.09
  909. ARJ       2.39f   a -m3              183  000:10.1    192558      1.09
  910. HYPER     2.5    -a                  302  000:16.6    197280      1.11
  911. PKZIP     2.04g  -a -es               85  000: 4.7    202258      1.14
  912. ARJ       2.39f   a -m4              151  000: 8.3    204075      1.15
  913.  
  914.  
  915. Extraction, sorted by: Speed
  916.  
  917. Program   Description             Ticks   Min:Secs  Relative
  918. ========  ======================  ======  ========  ========
  919. PKUNZIP   2.04g  -e (-en)             40  000: 2.2      1.00
  920. PKUNZIP   2.04g  -e (-ef)             42  000: 2.3      1.05
  921. PKUNZIP   2.04g  -e (-ex)             45  000: 2.5      1.11
  922. PKUNZIP   2.04g  -e (-es)             57  000: 3.1      1.40
  923. LHA       2.52    e -n                75  000: 4.1      1.85
  924. SQZ       1.08.3e e (-m1)             93  000: 5.1      2.29
  925. ARJ       2.39f   e (-m4)             94  000: 5.2      2.31
  926. ARJ       2.39f   e (-jm1)            94  000: 5.2      2.33
  927. SQZ       1.08.3e e (-q3)             94  000: 5.2      2.33
  928. SQZ       1.08.3e e (-q6)             95  000: 5.2      2.35
  929. SQZ       1.08.3e e (-q0)             96  000: 5.3      2.36
  930. ARJ       2.39f   e (-jm)             96  000: 5.3      2.38
  931. ARJ       2.39f   e (-m1)             97  000: 5.3      2.39
  932. ARJ       2.39f   e (-m3)             98  000: 5.4      2.41
  933. SQZ       1.08.3e e (-q9)             99  000: 5.4      2.45
  934. HYPER     2.5    -x                  128  000: 7.0      3.15
  935. UNZIP     5.00   -j (-9)             161  000: 8.8      3.98
  936. UNZIP     5.00   -j (-6)             166  000: 9.1      4.09
  937. UNZIP     5.00   -j (-3)             175  000: 9.6      4.31
  938. UNZIP     5.00   -j (-1)             205  000:11.3      5.06
  939. PAH3      3.00    e                  624  000:34.3     15.34
  940.  
  941.   >> This time PAH takes less than half the time to de-compress as HAP took
  942.      to compress.  What's the deal?
  943.  
  944.                              ╓──────────────────╖
  945.                              ║  Winners Set  5  ║
  946.          ╓───────────────────╨──────────────────╨──────────────────╖
  947.          ║ Category 1 (size)    : PKZIP best, then ZIP, then SQZ   ║
  948.          ║ Category 2 (speed)   : PKZIP best, then ARJ, then ZIP   ║
  949.          ║ Category 3 (abs size): HAP   best, then SQZ, then ZIP   ║
  950.          ║ Category 4 (extract) : PKZIP best, then SQZ, then ARJ   ║
  951.          ╙─────────────────────────────────────────────────────────╜
  952.  
  953.  
  954.  
  955.    ---- TEST SET  6 -----------------------------------------------------
  956.  
  957.    Plain ASCII text files.  They are captured discussions of the PK/SEA
  958.      debate from the message base on Magpie BBS.
  959.  
  960.     magpie           48,000 bytes
  961.     magpie2          55,040 bytes
  962.     magpie3          50,944 bytes
  963.     magpie4          52,864 bytes
  964.     magpie5         120,576 bytes
  965.     magpie6          15,488 bytes
  966.     reply.txt        31,104 bytes
  967.                     -------
  968.                     374,016 total bytes in 7 files
  969.  
  970.  
  971.             DCCMP run as: "DCCMP -3 -ts -otest6.rsl archive test6 f:\test6\*.* f:\temp *.*"
  972.    Batch ARCHIVE was run:       3 times...
  973. Memory free for programs:     517 K
  974.             Time per run: 0:07:05
  975.       Total time elapsed: 0:21:16
  976.  
  977.  
  978. Compression, sorted by: Speed
  979.  
  980. Program   Description             Ticks   Min:Secs  Size      Relative
  981. ========  ======================  ======  ========  ========  ========
  982. PKZIP     2.04g  -a -es               65  000: 3.6    153115      1.00
  983. PKZIP     2.04g  -a -ef              107  000: 5.9    138362      1.66
  984. ARJ       2.39f   a -m4              122  000: 6.7    154303      1.89
  985. ARJ       2.39f   a -m3              142  000: 7.8    138231      2.18
  986. PKZIP     2.04g  -a -en              167  000: 9.2    130889      2.58
  987. ZIP       1.9    -1                  190  000:10.4    135739      2.92
  988. ZIP       1.9    -3                  208  000:11.4    131711      3.21
  989. PKZIP     2.04g  -a -ex              226  000:12.4    130007      3.49
  990. HYPER     2.5    -a                  236  000:13.0    140852      3.64
  991. SQZ       1.08.3e a -q9              244  000:13.4    139090      3.76
  992. ZIP       1.9    -6                  249  000:13.7    129948      3.84
  993. ARJ       2.39f   a -m1              261  000:14.3    131146      4.02
  994. ARJ       2.39f   a -jm1             271  000:14.9    131127      4.17
  995. ARJ       2.39f   a -jm              277  000:15.2    131118      4.26
  996. ZIP       1.9    -9                  278  000:15.3    129903      4.28
  997. LHA       2.52    a -n               323  000:17.7    138639      4.98
  998. SQZ       1.08.3e a -q6              326  000:17.9    130770      5.02
  999. SQZ       1.08.3e a -m1              400  000:22.0    130120      6.16
  1000. SQZ       1.08.3e a -q3              427  000:23.5    129360      6.57
  1001. SQZ       1.08.3e a -q0              477  000:26.2    129312      7.34
  1002. HAP3      3.00    a                  707  000:38.8    109167     10.88
  1003.  
  1004.   >> Again, look at how fast PKZIP reaches the levels of compression that it
  1005.      does compared to the other archivers.
  1006.  
  1007.   >> If you throw out the two faster versions of ARJ that don't get that great
  1008.      of compression, then you'll see that ZIP performs better than ARJ.
  1009.  
  1010.   >> Again, we have three archivers that out-do PKZIP in absolute compression
  1011.      size.  And again, ARJ is not one of them, ZIP barely does better, and SQZ
  1012.      takes more than twice as long to get just 700 bytes better compression.
  1013.  
  1014.   >> But this time, HAP gets more than 20000 bytes better compression.  That's
  1015.      20% better, and four times better than HAP did over the other archivers
  1016.      in the last two test sets.
  1017.  
  1018.   >> And HAP took only about three times as long as PKZIP:ex this time.  This
  1019.      shows that when HAP is compressing the best in terms of size, then it is
  1020.      also at its best in terms of speed, which makes sense.
  1021.  
  1022.   >> This test set also shows that HAP is very good at English text, and
  1023.      conversely, that HAP is poor with binary files.  If, HAP analyzed the data
  1024.      before compressing it, and then applied PKZIP's algorithm on binary files,
  1025.      and its own algorithm in ASCII text, then HAP would likely compress not only
  1026.      smaller, but faster (since only the text files would be slow).
  1027.  
  1028.   >> Again, we can forget about HYPER and LHA.
  1029.  
  1030.  
  1031. Compression, sorted by: Size
  1032.  
  1033. Program   Description             Ticks   Min:Secs  Size      Relative
  1034. ========  ======================  ======  ========  ========  ========
  1035. HAP3      3.00    a                  707  000:38.8    109167      1.00
  1036. SQZ       1.08.3e a -q0              477  000:26.2    129312      1.18
  1037. SQZ       1.08.3e a -q3              427  000:23.5    129360      1.18
  1038. ZIP       1.9    -9                  278  000:15.3    129903      1.19
  1039. ZIP       1.9    -6                  249  000:13.7    129948      1.19
  1040. PKZIP     2.04g  -a -ex              226  000:12.4    130007      1.19
  1041. SQZ       1.08.3e a -m1              400  000:22.0    130120      1.19
  1042. SQZ       1.08.3e a -q6              326  000:17.9    130770      1.20
  1043. PKZIP     2.04g  -a -en              167  000: 9.2    130889      1.20
  1044. ARJ       2.39f   a -jm              277  000:15.2    131118      1.20
  1045. ARJ       2.39f   a -jm1             271  000:14.9    131127      1.20
  1046. ARJ       2.39f   a -m1              261  000:14.3    131146      1.20
  1047. ZIP       1.9    -3                  208  000:11.4    131711      1.21
  1048. ZIP       1.9    -1                  190  000:10.4    135739      1.24
  1049. ARJ       2.39f   a -m3              142  000: 7.8    138231      1.27
  1050. PKZIP     2.04g  -a -ef              107  000: 5.9    138362      1.27
  1051. LHA       2.52    a -n               323  000:17.7    138639      1.27
  1052. SQZ       1.08.3e a -q9              244  000:13.4    139090      1.27
  1053. HYPER     2.5    -a                  236  000:13.0    140852      1.29
  1054. PKZIP     2.04g  -a -es               65  000: 3.6    153115      1.40
  1055. ARJ       2.39f   a -m4              122  000: 6.7    154303      1.41
  1056.  
  1057.  
  1058. Extraction, sorted by: Speed
  1059.  
  1060. Program   Description             Ticks   Min:Secs  Relative
  1061. ========  ======================  ======  ========  ========
  1062. UNZIP     5.00   -j (-6)              17  000: 0.9      1.00
  1063. UNZIP     5.00   -j (-9)              17  000: 0.9      1.02
  1064. UNZIP     5.00   -j (-3)              17  000: 0.9      1.02
  1065. UNZIP     5.00   -j (-1)              31  000: 1.7      1.79
  1066. PKUNZIP   2.04g  -e (-ef)             33  000: 1.8      1.92
  1067. PKUNZIP   2.04g  -e (-en)             33  000: 1.8      1.94
  1068. PKUNZIP   2.04g  -e (-ex)             35  000: 1.9      2.06
  1069. PKUNZIP   2.04g  -e (-es)             48  000: 2.6      2.79
  1070. LHA       2.52    e -n                56  000: 3.1      3.27
  1071. ARJ       2.39f   e (-m1)             68  000: 3.7      3.94
  1072. ARJ       2.39f   e (-jm)             69  000: 3.8      4.00
  1073. ARJ       2.39f   e (-jm1)            70  000: 3.8      4.08
  1074. SQZ       1.08.3e e (-q0)             70  000: 3.8      4.08
  1075. SQZ       1.08.3e e (-q3)             71  000: 3.9      4.12
  1076. ARJ       2.39f   e (-m3)             71  000: 3.9      4.13
  1077. SQZ       1.08.3e e (-q6)             72  000: 4.0      4.15
  1078. SQZ       1.08.3e e (-q9)             75  000: 4.1      4.37
  1079. SQZ       1.08.3e e (-m1)             77  000: 4.2      4.48
  1080. ARJ       2.39f   e (-m4)             83  000: 4.6      4.79
  1081. HYPER     2.5    -x                  163  000: 9.0      9.40
  1082. PAH3      3.00    e                  798  000:43.8     46.06
  1083.  
  1084.   >> Look at this!  UNZIP which was previously 4 or 5 times slower than
  1085.      PKUNZIP, is now about twice as fast.  The main difference with this
  1086.      test set is that the matched strings would be considerably longer
  1087.      than in the other test sets (ie, the test set is more compressible).
  1088.  
  1089.                              ╓──────────────────╖
  1090.                              ║  Winners Set  6  ║
  1091.          ╓───────────────────╨──────────────────╨──────────────────╖
  1092.          ║ Category 1 (size)    : PKZIP best, then ZIP,   then ARJ ║
  1093.          ║ Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP ║
  1094.          ║ Category 3 (abs size): HAP   best, then SQZ,   then ZIP ║
  1095.          ║ Category 4 (extract) : ZIP   best, then PKZIP, then ARJ ║
  1096.          ╙─────────────────────────────────────────────────────────╜
  1097.  
  1098.  
  1099.  
  1100.    ---- TEST SET  7 -----------------------------------------------------
  1101.  
  1102.    These are files from some version of DOS with all files over 9999 bytes
  1103.      removed.
  1104.  
  1105.     mortgage.bas      6,251 bytes
  1106.     assign.com        1,561 bytes
  1107.     basic.com         1,063 bytes
  1108.     chkdsk.com        9,850 bytes
  1109.     comp.com          4,214 bytes
  1110.     diskcomp.com      5,879 bytes
  1111.     diskcopy.com      6,295 bytes
  1112.     diskpark.com      2,790 bytes
  1113.     edlin.com         7,526 bytes
  1114.     graftabl.com      6,128 bytes
  1115.     graphics.com      3,300 bytes
  1116.     keyb.com          9,056 bytes
  1117.     label.com         2,377 bytes
  1118.     more.com            313 bytes
  1119.     print.com         9,026 bytes
  1120.     recover.com       4,299 bytes
  1121.     select.com        4,163 bytes
  1122.     sys.com           4,766 bytes
  1123.     tree.com          3,571 bytes
  1124.     5202.cpi            459 bytes
  1125.     append.exe        5,825 bytes
  1126.     attrib.exe        9,529 bytes
  1127.     fastopen.exe      3,919 bytes
  1128.     find.exe          6,434 bytes
  1129.     join.exe          8,969 bytes
  1130.     nlsfunc.exe       3,060 bytes
  1131.     share.exe         8,608 bytes
  1132.     sort.exe          1,977 bytes
  1133.     subst.exe         9,909 bytes
  1134.     basic.pif           369 bytes
  1135.     basica.pif          369 bytes
  1136.     diskpark.ref      2,304 bytes
  1137.     ansi.sys          1,678 bytes
  1138.     driver.sys        1,196 bytes
  1139.     vdisk.sys         3,455 bytes
  1140.                     -------
  1141.                     160,488 total bytes in 35 files
  1142.  
  1143.  
  1144.             DCCMP run as: "DCCMP -3 -ts -otest7.rsl archive test7 f:\test7\*.* f:\temp *.*"
  1145.    Batch ARCHIVE was run:       3 times...
  1146. Memory free for programs:     517 K
  1147.             Time per run: 0:05:52
  1148.       Total time elapsed: 0:17:38
  1149.  
  1150.  
  1151. Compression, sorted by: Speed
  1152.  
  1153. Program   Description             Ticks   Min:Secs  Size      Relative
  1154. ========  ======================  ======  ========  ========  ========
  1155. PKZIP     2.04g  -a -es               62  000: 3.4     93964      1.00
  1156. PKZIP     2.04g  -a -ef               80  000: 4.4     90523      1.28
  1157. PKZIP     2.04g  -a -en               81  000: 4.5     90310      1.31
  1158. PKZIP     2.04g  -a -ex               93  000: 5.1     90310      1.50
  1159. ARJ       2.39f   a -m4              101  000: 5.5     98895      1.63
  1160. SQZ       1.08.3e a -q9              133  000: 7.3     88351      2.13
  1161. LHA       2.52    a -n               135  000: 7.4     88238      2.17
  1162. ZIP       1.9    -1                  142  000: 7.8     90941      2.29
  1163. ZIP       1.9    -3                  143  000: 7.9     90751      2.30
  1164. ARJ       2.39f   a -m3              144  000: 7.9     89627      2.32
  1165. SQZ       1.08.3e a -q6              147  000: 8.1     88116      2.36
  1166. ARJ       2.39f   a -jm1             148  000: 8.1     89043      2.38
  1167. ZIP       1.9    -6                  148  000: 8.1     90647      2.38
  1168. ARJ       2.39f   a -jm              152  000: 8.4     89037      2.44
  1169. ZIP       1.9    -9                  155  000: 8.5     90634      2.50
  1170. HYPER     2.5    -a                  160  000: 8.8     91300      2.57
  1171. SQZ       1.08.3e a -q3              162  000: 8.9     88107      2.60
  1172. ARJ       2.39f   a -m1              173  000: 9.5     89024      2.78
  1173. SQZ       1.08.3e a -m1              179  000: 9.8     88229      2.88
  1174. SQZ       1.08.3e a -q0              189  000:10.4     88114      3.04
  1175. HAP3      3.00    a                  825  000:45.3     87192     13.24
  1176.  
  1177.   >> With this set of small binary files, we have a different set of winners.
  1178.      However, the differences in size between 1st, 2nd, and 3rd place winners
  1179.      are often very small.
  1180.  
  1181.   >> Notice that all four levels of PKZIP are faster than any other archiver.
  1182.      That means that even the SLOWEST level of PKZIP (PKZIP:ex) is faster than
  1183.      the FASTEST level  of any other archiver.
  1184.  
  1185.   >> Even so, PKZIP can't manage to get down to the 88000 byte level that both
  1186.      SQZ and LHA do.  And it can't get down to the 89000 byte level that ARJ
  1187.      does.  At least you can say that LHA has an advantage in that it uses
  1188.      small file headers, but ARJ does not have this advantage and still beats
  1189.      PKZIP.   (Remember that the larger file headers allow for more integrity
  1190.      and features).
  1191.  
  1192.   >> Finally, LHA wins in a Category (the size Category), although just barely
  1193.      over SQZ.  LHA compresses a little faster, SQZ compresses a tiny bit
  1194.      better.
  1195.  
  1196.   >> While LHA and SQZ are very close to each other, ARJ is definitely behind
  1197.      them for third place.
  1198.  
  1199.   >> Notice how poorly ARJ:m4 performs.  Is this the price you want to pay for
  1200.      speed?  And remember that the slowest level of PKZIP was still faster than
  1201.      this "fast" level of ARJ.
  1202.  
  1203.   >> HYPER remains unremarkable.
  1204.  
  1205.   >> And if want to wait seven times longer than LHA, then HAP will save you
  1206.      1000 bytes, but require you to wait 26 times longer than PKUNZIP to
  1207.      extract.
  1208.  
  1209.  
  1210. Compression, sorted by: Size
  1211.  
  1212. Program   Description             Ticks   Min:Secs  Size      Relative
  1213. ========  ======================  ======  ========  ========  ========
  1214. HAP3      3.00    a                  825  000:45.3     87192      1.00
  1215. SQZ       1.08.3e a -q3              162  000: 8.9     88107      1.01
  1216. SQZ       1.08.3e a -q0              189  000:10.4     88114      1.01
  1217. SQZ       1.08.3e a -q6              147  000: 8.1     88116      1.01
  1218. SQZ       1.08.3e a -m1              179  000: 9.8     88229      1.01
  1219. LHA       2.52    a -n               135  000: 7.4     88238      1.01
  1220. SQZ       1.08.3e a -q9              133  000: 7.3     88351      1.01
  1221. ARJ       2.39f   a -m1              173  000: 9.5     89024      1.02
  1222. ARJ       2.39f   a -jm              152  000: 8.4     89037      1.02
  1223. ARJ       2.39f   a -jm1             148  000: 8.1     89043      1.02
  1224. ARJ       2.39f   a -m3              144  000: 7.9     89627      1.03
  1225. PKZIP     2.04g  -a -en               81  000: 4.5     90310      1.04
  1226. PKZIP     2.04g  -a -ex               93  000: 5.1     90310      1.04
  1227. PKZIP     2.04g  -a -ef               80  000: 4.4     90523      1.04
  1228. ZIP       1.9    -9                  155  000: 8.5     90634      1.04
  1229. ZIP       1.9    -6                  148  000: 8.1     90647      1.04
  1230. ZIP       1.9    -3                  143  000: 7.9     90751      1.04
  1231. ZIP       1.9    -1                  142  000: 7.8     90941      1.04
  1232. HYPER     2.5    -a                  160  000: 8.8     91300      1.05
  1233. PKZIP     2.04g  -a -es               62  000: 3.4     93964      1.08
  1234. ARJ       2.39f   a -m4              101  000: 5.5     98895      1.13
  1235.  
  1236.  
  1237. Extraction, sorted by: Speed
  1238.  
  1239. Program   Description             Ticks   Min:Secs  Relative
  1240. ========  ======================  ======  ========  ========
  1241. PKUNZIP   2.04g  -e (-es)             39  000: 2.1      1.00
  1242. PKUNZIP   2.04g  -e (-en)             39  000: 2.1      1.00
  1243. PKUNZIP   2.04g  -e (-ef)             40  000: 2.2      1.01
  1244. PKUNZIP   2.04g  -e (-ex)             42  000: 2.3      1.06
  1245. LHA       2.52    e -n                60  000: 3.3      1.52
  1246. SQZ       1.08.3e e (-q3)             73  000: 4.0      1.84
  1247. SQZ       1.08.3e e (-q9)             73  000: 4.0      1.85
  1248. SQZ       1.08.3e e (-m1)             73  000: 4.0      1.86
  1249. SQZ       1.08.3e e (-q0)             74  000: 4.1      1.87
  1250. SQZ       1.08.3e e (-q6)             74  000: 4.1      1.87
  1251. ARJ       2.39f   e (-jm)            102  000: 5.6      2.59
  1252. ARJ       2.39f   e (-m3)            104  000: 5.7      2.62
  1253. ARJ       2.39f   e (-jm1)           104  000: 5.7      2.62
  1254. UNZIP     5.00   -j (-3)             104  000: 5.7      2.64
  1255. ARJ       2.39f   e (-m4)            106  000: 5.8      2.67
  1256. UNZIP     5.00   -j (-6)             107  000: 5.9      2.71
  1257. UNZIP     5.00   -j (-9)             108  000: 5.9      2.74
  1258. ARJ       2.39f   e (-m1)            111  000: 6.1      2.81
  1259. UNZIP     5.00   -j (-1)             126  000: 6.9      3.18
  1260. HYPER     2.5    -x                  133  000: 7.3      3.35
  1261. PAH3      3.00    e                 1067  000:58.6     26.90
  1262.  
  1263.   >> This time UNZIPis about as fast extracting as ARJ is.
  1264.  
  1265.   >> But, of course, PKUNZIP is the clear winner at extraction.
  1266.  
  1267.                              ╓──────────────────╖
  1268.                              ║  Winners Set  7  ║
  1269.          ╓───────────────────╨──────────────────╨──────────────────╖
  1270.          ║ Category 1 (size)    : LHA   best, then SQZ, then ARJ   ║
  1271.          ║ Category 2 (speed)   : PKZIP best, then SQZ, then LHA   ║
  1272.          ║ Category 3 (abs size): HAP   best, then SQZ, then LHA   ║
  1273.          ║ Category 4 (extract) : PKZIP best, then LHA, then SQZ   ║
  1274.          ╙─────────────────────────────────────────────────────────╜
  1275.  
  1276.  
  1277.  
  1278.    ---- TEST SET  8 -----------------------------------------------------
  1279.  
  1280.    C and assembler source files from Small Windows (a text mode windowing
  1281.      library).  All files are less than 10,000 bytes.
  1282.  
  1283.     files.c           6,780 bytes
  1284.     itoab.c             598 bytes
  1285.     itou.c              567 bytes
  1286.     ltou.c              709 bytes
  1287.     menu.c            8,422 bytes
  1288.     msort.c           2,076 bytes
  1289.     poll.c              512 bytes
  1290.     swtest.c          9,728 bytes
  1291.     utoi.c              398 bytes
  1292.     vmode.c             792 bytes
  1293.     vpoint.c            761 bytes
  1294.     watt.c              556 bytes
  1295.     wauto.c             736 bytes
  1296.     wchr.c              550 bytes
  1297.     wchra.c             590 bytes
  1298.     wclean.c            448 bytes
  1299.     wframe.c          1,574 bytes
  1300.     wgetc.c             640 bytes
  1301.     wgetf.c           4,072 bytes
  1302.     wgets.c           1,376 bytes
  1303.     whorlin.c           768 bytes
  1304.     wkernel.c         9,472 bytes
  1305.     wmove.c           1,295 bytes
  1306.     wprintf.c         2,176 bytes
  1307.     wprintfa.c        2,593 bytes
  1308.     wpush.c             965 bytes
  1309.     wputc.c             672 bytes
  1310.     wputca.c            741 bytes
  1311.     wputs.c             243 bytes
  1312.     wputsa.c            348 bytes
  1313.     wreada.c            640 bytes
  1314.     wscanf.c          2,766 bytes
  1315.     wscroll.c         2,197 bytes
  1316.     wstr.c              567 bytes
  1317.     wstra.c             592 bytes
  1318.     wverlin.c           768 bytes
  1319.     window.h          1,242 bytes
  1320.     files2.asm        7,168 bytes
  1321.     getkey.asm        1,280 bytes
  1322.     hitkey.asm        1,024 bytes
  1323.     pad.asm           1,280 bytes
  1324.     vatt.asm          2,688 bytes
  1325.     vchr.asm          2,688 bytes
  1326.     vchra.asm         2,944 bytes
  1327.     vcursor.asm       1,280 bytes
  1328.     vdrop.asm         1,664 bytes
  1329.     vgoto.asm         1,280 bytes
  1330.     visat.asm         1,152 bytes
  1331.     vlift.asm         1,664 bytes
  1332.     vmode2.asm        1,408 bytes
  1333.     vpage.asm         1,280 bytes
  1334.     vpoint2.asm         768 bytes
  1335.     vreada.asm        2,432 bytes
  1336.     vshow.asm         3,328 bytes
  1337.     vstow.asm         3,200 bytes
  1338.     vstr.asm          3,840 bytes
  1339.     vstra.asm         4,224 bytes
  1340.                     -------
  1341.                     116,522 total bytes in 57 files
  1342.  
  1343.             DCCMP run as: "DCCMP -3 -ts -otest8.rsl archive test8 f:\test8\*.* f:\temp *.*"
  1344.    Batch ARCHIVE was run:       3 times...
  1345. Memory free for programs:     517 K
  1346.             Time per run: 0:04:59
  1347.       Total time elapsed: 0:14:58
  1348.  
  1349.  
  1350. Compression, sorted by: Speed
  1351.  
  1352. Program   Description             Ticks   Min:Secs  Size      Relative
  1353. ========  ======================  ======  ========  ========  ========
  1354. PKZIP     2.04g  -a -es               61  000: 3.4     45524      1.00
  1355. PKZIP     2.04g  -a -ef               67  000: 3.7     42473      1.10
  1356. PKZIP     2.04g  -a -en               69  000: 3.8     42007      1.14
  1357. PKZIP     2.04g  -a -ex               76  000: 4.2     41904      1.25
  1358. ARJ       2.39f   a -m4              115  000: 6.3     45932      1.89
  1359. SQZ       1.08.3e a -q9              120  000: 6.6     39409      1.98
  1360. ZIP       1.9    -1                  122  000: 6.7     43348      2.00
  1361. ZIP       1.9    -3                  124  000: 6.8     42919      2.04
  1362. LHA       2.52    a -n               127  000: 7.0     38689      2.09
  1363. SQZ       1.08.3e a -q6              128  000: 7.0     38669      2.10
  1364. ZIP       1.9    -6                  131  000: 7.2     42604      2.16
  1365. ARJ       2.39f   a -m3              133  000: 7.3     41025      2.19
  1366. HYPER     2.5    -a                  135  000: 7.4     40977      2.22
  1367. ZIP       1.9    -9                  139  000: 7.6     42548      2.29
  1368. ARJ       2.39f   a -jm1             148  000: 8.1     39952      2.43
  1369. SQZ       1.08.3e a -q3              150  000: 8.2     38468      2.46
  1370. ARJ       2.39f   a -jm              152  000: 8.4     39923      2.50
  1371. SQZ       1.08.3e a -m1              168  000: 9.2     38714      2.75
  1372. SQZ       1.08.3e a -q0              176  000: 9.7     38438      2.89
  1373. ARJ       2.39f   a -m1              227  000:12.5     39968      3.72
  1374. HAP3      3.00    a                  432  000:23.7     37720      7.09
  1375.  
  1376.   >> This time the test set a bunch of small ASCII files, but the outcome is
  1377.      basically the same as the last test set (the set of small binary files).
  1378.  
  1379.   >> This time SQZ is slightly better than LHA.  Why not just say they are
  1380.      equal on small files?  (Unless, of course, one is only counting absolute
  1381.      file sizes.)
  1382.  
  1383.   >> Again, all four levels of PKZIP are faster than anything else.
  1384.  
  1385.   >> This time, the fastest level of ARJ does not do so poorly.
  1386.  
  1387.   >> And this time, HYPER gets better compression than PKZIP.  That's five
  1388.      archivers that get better compression than PKZIP!  Though they only save
  1389.      at best 3500 bytes (not including HAP), this is a significant percentage
  1390.      (about 9%).
  1391.  
  1392.   >> Notice that ZIP, that uses the same algorithm as PKZIP, is also poor in
  1393.      compression size.
  1394.  
  1395.   >> Again, HAP only compresses a little better though it take three times as
  1396.      long as LHA.
  1397.  
  1398.  
  1399. Compression, sorted by: Size
  1400.  
  1401. Program   Description             Ticks   Min:Secs  Size      Relative
  1402. ========  ======================  ======  ========  ========  ========
  1403. HAP3      3.00    a                  432  000:23.7     37720      1.00
  1404. SQZ       1.08.3e a -q0              176  000: 9.7     38438      1.02
  1405. SQZ       1.08.3e a -q3              150  000: 8.2     38468      1.02
  1406. SQZ       1.08.3e a -q6              128  000: 7.0     38669      1.03
  1407. LHA       2.52    a -n               127  000: 7.0     38689      1.03
  1408. SQZ       1.08.3e a -m1              168  000: 9.2     38714      1.03
  1409. SQZ       1.08.3e a -q9              120  000: 6.6     39409      1.04
  1410. ARJ       2.39f   a -jm              152  000: 8.4     39923      1.06
  1411. ARJ       2.39f   a -jm1             148  000: 8.1     39952      1.06
  1412. ARJ       2.39f   a -m1              227  000:12.5     39968      1.06
  1413. HYPER     2.5    -a                  135  000: 7.4     40977      1.09
  1414. ARJ       2.39f   a -m3              133  000: 7.3     41025      1.09
  1415. PKZIP     2.04g  -a -ex               76  000: 4.2     41904      1.11
  1416. PKZIP     2.04g  -a -en               69  000: 3.8     42007      1.11
  1417. PKZIP     2.04g  -a -ef               67  000: 3.7     42473      1.13
  1418. ZIP       1.9    -9                  139  000: 7.6     42548      1.13
  1419. ZIP       1.9    -6                  131  000: 7.2     42604      1.13
  1420. ZIP       1.9    -3                  124  000: 6.8     42919      1.14
  1421. ZIP       1.9    -1                  122  000: 6.7     43348      1.15
  1422. PKZIP     2.04g  -a -es               61  000: 3.4     45524      1.21
  1423. ARJ       2.39f   a -m4              115  000: 6.3     45932      1.22
  1424.  
  1425.  
  1426. Extraction, sorted by: Speed
  1427.  
  1428. Program   Description             Ticks   Min:Secs  Relative
  1429. ========  ======================  ======  ========  ========
  1430. PKUNZIP   2.04g  -e (-ex)             51  000: 2.8      1.00
  1431. PKUNZIP   2.04g  -e (-es)             53  000: 2.9      1.05
  1432. PKUNZIP   2.04g  -e (-en)             56  000: 3.1      1.11
  1433. PKUNZIP   2.04g  -e (-ef)             59  000: 3.2      1.17
  1434. LHA       2.52    e -n                69  000: 3.8      1.36
  1435. SQZ       1.08.3e e (-q3)             77  000: 4.2      1.52
  1436. SQZ       1.08.3e e (-q0)             77  000: 4.2      1.52
  1437. SQZ       1.08.3e e (-m1)             78  000: 4.3      1.53
  1438. SQZ       1.08.3e e (-q9)             78  000: 4.3      1.54
  1439. SQZ       1.08.3e e (-q6)             79  000: 4.3      1.55
  1440. UNZIP     5.00   -j (-9)              86  000: 4.7      1.69
  1441. UNZIP     5.00   -j (-3)              90  000: 4.9      1.78
  1442. UNZIP     5.00   -j (-6)              92  000: 5.1      1.81
  1443. UNZIP     5.00   -j (-1)              96  000: 5.3      1.90
  1444. HYPER     2.5    -x                  103  000: 5.7      2.02
  1445. ARJ       2.39f   e (-m4)            125  000: 6.9      2.46
  1446. ARJ       2.39f   e (-m3)            128  000: 7.0      2.52
  1447. ARJ       2.39f   e (-jm)            128  000: 7.0      2.52
  1448. ARJ       2.39f   e (-jm1)           129  000: 7.1      2.54
  1449. ARJ       2.39f   e (-m1)            158  000: 8.7      3.10
  1450. PAH3      3.00    e                  489  000:26.9      9.59
  1451.  
  1452.   >> Here UNZIP decidedly beats ARJ in extraction.
  1453.  
  1454.                              ╓──────────────────╖
  1455.                              ║  Winners Set  8  ║
  1456.          ╓───────────────────╨──────────────────╨──────────────────╖
  1457.          ║ Category 1 (size)    : SQZ   best, then LHA, then ARJ   ║
  1458.          ║ Category 2 (speed)   : PKZIP best, then SQZ, then LHA   ║
  1459.          ║ Category 3 (abs size): HAP   best, then SQZ, then LHA   ║
  1460.          ║ Category 4 (extract) : PKZIP best, then LHA, then SQZ   ║
  1461.          ╙─────────────────────────────────────────────────────────╜
  1462.  
  1463.  
  1464.  
  1465.    ---- TEST SET  9 -----------------------------------------------------
  1466.  
  1467.    King James translation of PSALMS.  Mostly ASCII, with binary codes
  1468.      between each verse.
  1469.  
  1470.     19o_psal.kj     228,638 bytes
  1471.  
  1472.  
  1473.             DCCMP run as: "DCCMP -3 -ts -otest9.rsl archive test9 f:\test9\*.* f:\temp *.*"
  1474.    Batch ARCHIVE was run:       3 times...
  1475. Memory free for programs:     517 K
  1476.             Time per run: 0:05:19
  1477.       Total time elapsed: 0:15:58
  1478.  
  1479.  
  1480. Compression, sorted by: Speed
  1481.  
  1482. Program   Description             Ticks   Min:Secs  Size      Relative
  1483. ========  ======================  ======  ========  ========  ========
  1484. PKZIP     2.04g  -a -es               46  000: 2.5     99318      1.00
  1485. ARJ       2.39f   a -m4               75  000: 4.1     97311      1.64
  1486. PKZIP     2.04g  -a -ef               82  000: 4.5     87021      1.80
  1487. ARJ       2.39f   a -m3               89  000: 4.9     86641      1.95
  1488. PKZIP     2.04g  -a -en              127  000: 7.0     79847      2.78
  1489. ZIP       1.9    -1                  130  000: 7.1     84160      2.83
  1490. ZIP       1.9    -3                  142  000: 7.8     81123      3.09
  1491. HYPER     2.5    -a                  148  000: 8.1     87013      3.22
  1492. SQZ       1.08.3e a -q9              158  000: 8.7     88414      3.45
  1493. ZIP       1.9    -6                  194  000:10.7     79103      4.22
  1494. LHA       2.52    a -n               209  000:11.5     86380      4.55
  1495. ARJ       2.39f   a -m1              209  000:11.5     80336      4.56
  1496. PKZIP     2.04g  -a -ex              222  000:12.2     78827      4.84
  1497. ARJ       2.39f   a -jm1             228  000:12.5     80167      4.96
  1498. SQZ       1.08.3e a -q6              231  000:12.7     80946      5.04
  1499. ARJ       2.39f   a -jm              240  000:13.2     80108      5.22
  1500. ZIP       1.9    -9                  250  000:13.7     78753      5.44
  1501. SQZ       1.08.3e a -m1              301  000:16.5     79945      6.54
  1502. SQZ       1.08.3e a -q3              362  000:19.9     78792      7.88
  1503. HAP3      3.00    a                  402  000:22.1     64993      8.75
  1504. SQZ       1.08.3e a -q0              452  000:24.8     78483      9.83
  1505.  
  1506.   >> This is the first test set that HAP wins Category 1 (best size with ok
  1507.      speed).  HAP takes 81% longer time than PKZIP:ex, but gets 21% better
  1508.      compression!  Of course, you'll have to wait 21 times longer than
  1509.      PKUNZIP to extract with PAH.
  1510.  
  1511.   >> Again, this shows that HAP's strength is in English text.  HAP probably
  1512.      does just as well in other languages, I just didn't have anything in
  1513.      other languages to test.  Please remember that you can use my DCCMP
  1514.      program to test out you own files.
  1515.  
  1516.   >> Here, PKZIP:es compresses 2000 bytes larger than ARJ:m4, but it does so
  1517.      in less than half the time.
  1518.  
  1519.   >> PKZIP:ef is about the same as ARJ:m3.  A little faster, but a little
  1520.      worse compression.
  1521.  
  1522.   >> After that, though, both PKZIP and ZIP out perform ARJ.
  1523.  
  1524.   >> And you can go back to forgetting about LHA and HYPER.
  1525.  
  1526.  
  1527. Compression, sorted by: Size
  1528.  
  1529. Program   Description             Ticks   Min:Secs  Size      Relative
  1530. ========  ======================  ======  ========  ========  ========
  1531. HAP3      3.00    a                  402  000:22.1     64993      1.00
  1532. SQZ       1.08.3e a -q0              452  000:24.8     78483      1.21
  1533. ZIP       1.9    -9                  250  000:13.7     78753      1.21
  1534. SQZ       1.08.3e a -q3              362  000:19.9     78792      1.21
  1535. PKZIP     2.04g  -a -ex              222  000:12.2     78827      1.21
  1536. ZIP       1.9    -6                  194  000:10.7     79103      1.22
  1537. PKZIP     2.04g  -a -en              127  000: 7.0     79847      1.23
  1538. SQZ       1.08.3e a -m1              301  000:16.5     79945      1.23
  1539. ARJ       2.39f   a -jm              240  000:13.2     80108      1.23
  1540. ARJ       2.39f   a -jm1             228  000:12.5     80167      1.23
  1541. ARJ       2.39f   a -m1              209  000:11.5     80336      1.24
  1542. SQZ       1.08.3e a -q6              231  000:12.7     80946      1.25
  1543. ZIP       1.9    -3                  142  000: 7.8     81123      1.25
  1544. ZIP       1.9    -1                  130  000: 7.1     84160      1.29
  1545. LHA       2.52    a -n               209  000:11.5     86380      1.33
  1546. ARJ       2.39f   a -m3               89  000: 4.9     86641      1.33
  1547. HYPER     2.5    -a                  148  000: 8.1     87013      1.34
  1548. PKZIP     2.04g  -a -ef               82  000: 4.5     87021      1.34
  1549. SQZ       1.08.3e a -q9              158  000: 8.7     88414      1.36
  1550. ARJ       2.39f   a -m4               75  000: 4.1     97311      1.50
  1551. PKZIP     2.04g  -a -es               46  000: 2.5     99318      1.53
  1552.  
  1553.  
  1554. Extraction, sorted by: Speed
  1555.  
  1556. Program   Description             Ticks   Min:Secs  Relative
  1557. ========  ======================  ======  ========  ========
  1558. PKUNZIP   2.04g  -e (-en)             21  000: 1.2      1.00
  1559. PKUNZIP   2.04g  -e (-ef)             22  000: 1.2      1.05
  1560. PKUNZIP   2.04g  -e (-ex)             22  000: 1.2      1.05
  1561. PKUNZIP   2.04g  -e (-es)             28  000: 1.5      1.33
  1562. LHA       2.52    e -n                34  000: 1.9      1.61
  1563. ARJ       2.39f   e (-jm)             40  000: 2.2      1.88
  1564. ARJ       2.39f   e (-jm1)            40  000: 2.2      1.88
  1565. ARJ       2.39f   e (-m1)             40  000: 2.2      1.89
  1566. SQZ       1.08.3e e (-m1)             41  000: 2.3      1.95
  1567. SQZ       1.08.3e e (-q0)             42  000: 2.3      1.98
  1568. ARJ       2.39f   e (-m3)             42  000: 2.3      2.00
  1569. SQZ       1.08.3e e (-q3)             42  000: 2.3      2.00
  1570. SQZ       1.08.3e e (-q6)             44  000: 2.4      2.09
  1571. SQZ       1.08.3e e (-q9)             46  000: 2.5      2.19
  1572. ARJ       2.39f   e (-m4)             50  000: 2.7      2.38
  1573. UNZIP     5.00   -j (-6)              80  000: 4.4      3.78
  1574. UNZIP     5.00   -j (-9)              81  000: 4.5      3.81
  1575. UNZIP     5.00   -j (-3)              86  000: 4.7      4.03
  1576. HYPER     2.5    -x                   99  000: 5.4      4.64
  1577. UNZIP     5.00   -j (-1)             103  000: 5.7      4.83
  1578. PAH3      3.00    e                  457  000:25.1     21.45
  1579.  
  1580.   >> UNZIP is now back to its usual 4 times slower than PKUNZIP spot.
  1581.  
  1582.                              ╓──────────────────╖
  1583.                              ║  Winners Set  9  ║
  1584.          ╓───────────────────╨──────────────────╨──────────────────╖
  1585.          ║ Category 1 (size)    : HAP   best, then PKZIP, then ZIP ║
  1586.          ║ Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP ║
  1587.          ║ Category 3 (abs size): HAP   best, then SQZ,   then ZIP ║
  1588.          ║ Category 4 (extract) : PKZIP best, then ARJ,   then SQZ ║
  1589.          ╙─────────────────────────────────────────────────────────╜
  1590.  
  1591.  
  1592.  
  1593.    ---- TEST SET 10 -----------------------------------------------------
  1594.  
  1595.    Lotus 1-2-3 files.  These spreadsheets are from where I work.
  1596.  
  1597.     annulus1.wk1     24,876 bytes
  1598.     beamleaf.wk1     32,028 bytes
  1599.     exp.wk1          29,000 bytes
  1600.     motion1.wk1      93,230 bytes
  1601.     motion2.wk1     109,830 bytes
  1602.                     -------
  1603.                     288,964 total bytes in 5 files
  1604.  
  1605.             DCCMP run as: "DCCMP -3 -ts -otest10.rsl archive test10 f:\test10\*.* f:\temp *.*"
  1606.    Batch ARCHIVE was run:       3 times...
  1607. Memory free for programs:     517 K
  1608.             Time per run: 0:07:40
  1609.       Total time elapsed: 0:23:01
  1610.  
  1611.  
  1612. Compression, sorted by: Speed
  1613.  
  1614. Program   Description             Ticks   Min:Secs  Size      Relative
  1615. ========  ======================  ======  ========  ========  ========
  1616. PKZIP     2.04g  -a -es               40  000: 2.2     63900      1.00
  1617. PKZIP     2.04g  -a -ef               74  000: 4.1     63385      1.84
  1618. ARJ       2.39f   a -m4               80  000: 4.4     78277      2.00
  1619. ARJ       2.39f   a -m3               95  000: 5.2     64114      2.36
  1620. ZIP       1.9    -1                  127  000: 7.0     64912      3.15
  1621. ZIP       1.9    -3                  134  000: 7.4     61820      3.34
  1622. PKZIP     2.04g  -a -en              140  000: 7.7     61658      3.49
  1623. SQZ       1.08.3e a -q9              145  000: 8.0     63280      3.60
  1624. HYPER     2.5    -a                  152  000: 8.4     59309      3.79
  1625. LHA       2.52    a -n               184  000:10.1     63078      4.57
  1626. SQZ       1.08.3e a -q6              204  000:11.2     61548      5.07
  1627. ARJ       2.39f   a -m1              213  000:11.7     59759      5.29
  1628. PKZIP     2.04g  -a -ex              219  000:12.0     61136      5.43
  1629. ZIP       1.9    -6                  238  000:13.1     59969      5.91
  1630. ARJ       2.39f   a -jm1             252  000:13.8     59748      6.26
  1631. SQZ       1.08.3e a -m1              286  000:15.7     64196      7.09
  1632. ARJ       2.39f   a -jm              306  000:16.8     59743      7.59
  1633. SQZ       1.08.3e a -q3              548  000:30.1     63386     13.60
  1634. HAP3      3.00    a                  655  000:36.0     56849     16.26
  1635. ZIP       1.9    -9                  848  000:46.6     59904     21.02
  1636. SQZ       1.08.3e a -q0             1583  001:27.0     63372     39.25
  1637.  
  1638.   >> Finally HYPER wins Category 1 (best size with ok speed).
  1639.  
  1640.   >> This time HAP's compression speed is ok (read not terrible), but it only
  1641.      gets 4% better compression (instead of the 21% better as on the last
  1642.      test).
  1643.  
  1644.   >> This time the first two level of PKZIP get good compression quickly, but
  1645.      ZIP:3 equals PKZIP:en, and ARJ:m1 is both faster and better compressing
  1646.      than PKZIP:ex.  Not only that, but ARJ:m1 itself is beat by HYPER in both
  1647.      speed and size.
  1648.  
  1649.   >> Indeed, PKZIP:ex is beaten by four archivers, though none of them is SQZ.
  1650.      Of course, except for HAP, none of the archivers beat PKZIP by much (at
  1651.      most by 800 bytes).
  1652.  
  1653.   >> Notice how SQZ:q6 compresses 2000 bytes better than SQZ:q0.  And it does
  1654.      so in 1/8 of  the time.  Remember that level q0 is supposed to compress
  1655.      better than level q6 (the lower the number, the better the compression).
  1656.      As you must surely have seen by now, nothing with archivers is a sure
  1657.      thing.
  1658.  
  1659.   >> Indeed, in this test case, SQZ:q0 is 2 and a half times SLOWER than HAP!
  1660.  
  1661.   >> Even ZIP:9 is slower than HAP.
  1662.  
  1663.   >> Still, HYPER is only 2500 bytes larger than HAP while being 4 times
  1664.      faster (that's 11 times faster than SQZ:q0).
  1665.  
  1666.  
  1667. Compression, sorted by: Size
  1668.  
  1669. Program   Description             Ticks   Min:Secs  Size      Relative
  1670. ========  ======================  ======  ========  ========  ========
  1671. HAP3      3.00    a                  655  000:36.0     56849      1.00
  1672. HYPER     2.5    -a                  152  000: 8.4     59309      1.04
  1673. ARJ       2.39f   a -jm              306  000:16.8     59743      1.05
  1674. ARJ       2.39f   a -jm1             252  000:13.8     59748      1.05
  1675. ARJ       2.39f   a -m1              213  000:11.7     59759      1.05
  1676. ZIP       1.9    -9                  848  000:46.6     59904      1.05
  1677. ZIP       1.9    -6                  238  000:13.1     59969      1.05
  1678. PKZIP     2.04g  -a -ex              219  000:12.0     61136      1.08
  1679. SQZ       1.08.3e a -q6              204  000:11.2     61548      1.08
  1680. PKZIP     2.04g  -a -en              140  000: 7.7     61658      1.08
  1681. ZIP       1.9    -3                  134  000: 7.4     61820      1.09
  1682. LHA       2.52    a -n               184  000:10.1     63078      1.11
  1683. SQZ       1.08.3e a -q9              145  000: 8.0     63280      1.11
  1684. SQZ       1.08.3e a -q0             1583  001:27.0     63372      1.11
  1685. PKZIP     2.04g  -a -ef               74  000: 4.1     63385      1.11
  1686. SQZ       1.08.3e a -q3              548  000:30.1     63386      1.11
  1687. PKZIP     2.04g  -a -es               40  000: 2.2     63900      1.12
  1688. ARJ       2.39f   a -m3               95  000: 5.2     64114      1.13
  1689. SQZ       1.08.3e a -m1              286  000:15.7     64196      1.13
  1690. ZIP       1.9    -1                  127  000: 7.0     64912      1.14
  1691. ARJ       2.39f   a -m4               80  000: 4.4     78277      1.38
  1692.  
  1693.  
  1694. Extraction, sorted by: Speed
  1695.  
  1696. Program   Description             Ticks   Min:Secs  Relative
  1697. ========  ======================  ======  ========  ========
  1698. PKUNZIP   2.04g  -e (-en)             23  000: 1.3      1.00
  1699. PKUNZIP   2.04g  -e (-es)             24  000: 1.3      1.01
  1700. PKUNZIP   2.04g  -e (-ef)             24  000: 1.3      1.03
  1701. PKUNZIP   2.04g  -e (-ex)             25  000: 1.4      1.06
  1702. LHA       2.52    e -n                32  000: 1.8      1.35
  1703. SQZ       1.08.3e e (-m1)             44  000: 2.4      1.87
  1704. SQZ       1.08.3e e (-q3)             45  000: 2.5      1.90
  1705. SQZ       1.08.3e e (-q0)             45  000: 2.5      1.90
  1706. SQZ       1.08.3e e (-q6)             45  000: 2.5      1.92
  1707. SQZ       1.08.3e e (-q9)             46  000: 2.5      1.94
  1708. ARJ       2.39f   e (-jm1)            48  000: 2.6      2.04
  1709. ARJ       2.39f   e (-jm)             48  000: 2.6      2.04
  1710. ARJ       2.39f   e (-m1)             48  000: 2.6      2.04
  1711. ARJ       2.39f   e (-m3)             49  000: 2.7      2.10
  1712. ARJ       2.39f   e (-m4)             54  000: 3.0      2.31
  1713. UNZIP     5.00   -j (-9)              77  000: 4.2      3.25
  1714. UNZIP     5.00   -j (-6)              79  000: 4.3      3.37
  1715. UNZIP     5.00   -j (-3)              86  000: 4.7      3.63
  1716. HYPER     2.5    -x                   87  000: 4.8      3.69
  1717. UNZIP     5.00   -j (-1)              98  000: 5.4      4.15
  1718. PAH3      3.00    e                  763  000:41.9     32.25
  1719.  
  1720.   >> Although HYPER may win once in compression, it loses in extraction by
  1721.      being 3 and half times slower than PKUNZIP.
  1722.  
  1723.   >> And again, PAH is 32 times slower than PKUNZIP.
  1724.  
  1725.                              ╓──────────────────╖
  1726.                              ║  Winners Set 10  ║
  1727.          ╓───────────────────╨──────────────────╨──────────────────╖
  1728.          ║ Category 1 (size)    : HYPER best, then ARJ,   then ZIP ║
  1729.          ║ Category 2 (speed)   : PKZIP best, then ZIP,   then ARJ ║
  1730.          ║ Category 3 (abs size): HAP   best, then HYPER, then ARJ ║
  1731.          ║ Category 4 (extract) : PKZIP best, then SQZ,   then ARJ ║
  1732.          ╙─────────────────────────────────────────────────────────╜
  1733.  
  1734.  
  1735.  
  1736.  
  1737.    ---- TEST SET 11 -----------------------------------------------------
  1738.  
  1739.    Microsoft Visual C++ windows help file for the Microsoft Foundation
  1740.      Classes.
  1741.  
  1742.     mfc.hlp       2,222,523 bytes
  1743.  
  1744.  
  1745.             DCCMP run as: "DCCMP -3 -ts -otest11.rsl archive test11 f:\test11\*.* f:\temp *.*"
  1746.    Batch ARCHIVE was run:       3 times...
  1747. Memory free for programs:     517 K
  1748.             Time per run: 1:18:23
  1749.       Total time elapsed: 3:55:11
  1750.  
  1751.  
  1752. Compression, sorted by: Speed
  1753.  
  1754. Program   Description             Ticks   Min:Secs  Size      Relative
  1755. ========  ======================  ======  ========  ========  ========
  1756. PKZIP     2.04g  -a -es              730  000:40.1   1361988      1.00
  1757. ARJ       2.39f   a -m4              905  000:49.7   1552530      1.24
  1758. PKZIP     2.04g  -a -ef             1045  000:57.4   1324195      1.43
  1759. ARJ       2.39f   a -m3             1181  001: 4.9   1345337      1.62
  1760. PKZIP     2.04g  -a -en             1427  001:18.4   1253792      1.95
  1761. ZIP       1.9    -1                 1451  001:19.7   1257140      1.99
  1762. ZIP       1.9    -3                 1618  001:28.9   1247798      2.22
  1763. SQZ       1.08.3e a -q9             1751  001:36.2   1265875      2.40
  1764. ZIP       1.9    -6                 1941  001:46.6   1242726      2.66
  1765. SQZ       1.08.3e a -q6             2001  001:49.9   1245526      2.74
  1766. HYPER     2.5    -a                 2031  001:51.6   1442831      2.78
  1767. ARJ       2.39f   a -m1             2036  001:51.9   1261364      2.79
  1768. PKZIP     2.04g  -a -ex             2137  001:57.4   1237261      2.93
  1769. ARJ       2.39f   a -jm1            2307  002: 6.8   1259420      3.16
  1770. SQZ       1.08.3e a -m1             2318  002: 7.4   1244060      3.18
  1771. SQZ       1.08.3e a -q3             2746  002:30.9   1241057      3.76
  1772. ARJ       2.39f   a -jm             3533  003:14.1   1257307      4.84
  1773. ZIP       1.9    -9                 3746  003:25.8   1238308      5.13
  1774. SQZ       1.08.3e a -q0             6060  005:33.0   1236629      8.30
  1775. HAP3      3.00    a                13449  012:19.0   1516570     18.42
  1776.  
  1777.   >> This time HAP does terrible in compression.  It takes HAP 6 times longer
  1778.      than PKZIP:ex to get 23% worse compression.  And if that's not bad enough
  1779.      for you, it will take PAH FIFTY times longer than PKUNZIP to extract!
  1780.  
  1781.   >> Good grief!  With PKUNZIP you only have to wait 18 seconds, but with PAH,
  1782.      you have to wait almost 16 MINUTES!!  AND you're archive will be 280K
  1783.      larger with HAP.
  1784.  
  1785.   >> The moral of the story is that you better be very careful with what files
  1786.      you use HAP on.  That is, if you decide to use HAP at all.
  1787.  
  1788.   >> These big files really show the differences between the archivers.  For
  1789.      example, although SQZ:q0 does compress 0.05% better than PKZIP:ex, it
  1790.      takes almost 3 times longer to do it.  And that means waiting around
  1791.      3 and a half minutes longer.
  1792.  
  1793.   >> At the next levels ZIP:6, ZIP:3, and SQZ:q6 do pretty good and are fairly
  1794.      close to matching PKZIP.
  1795.  
  1796.   >> But ARJ clearly lags behind.
  1797.  
  1798.  
  1799. Compression, sorted by: Size
  1800.  
  1801. Program   Description             Ticks   Min:Secs  Size      Relative
  1802. ========  ======================  ======  ========  ========  ========
  1803. SQZ       1.08.3e a -q0             6060  005:33.0   1236629      1.00
  1804. PKZIP     2.04g  -a -ex             2137  001:57.4   1237261      1.00
  1805. ZIP       1.9    -9                 3746  003:25.8   1238308      1.00
  1806. SQZ       1.08.3e a -q3             2746  002:30.9   1241057      1.00
  1807. ZIP       1.9    -6                 1941  001:46.6   1242726      1.00
  1808. SQZ       1.08.3e a -m1             2318  002: 7.4   1244060      1.01
  1809. SQZ       1.08.3e a -q6             2001  001:49.9   1245526      1.01
  1810. ZIP       1.9    -3                 1618  001:28.9   1247798      1.01
  1811. PKZIP     2.04g  -a -en             1427  001:18.4   1253792      1.01
  1812. ZIP       1.9    -1                 1451  001:19.7   1257140      1.02
  1813. ARJ       2.39f   a -jm             3533  003:14.1   1257307      1.02
  1814. ARJ       2.39f   a -jm1            2307  002: 6.8   1259420      1.02
  1815. ARJ       2.39f   a -m1             2036  001:51.9   1261364      1.02
  1816. SQZ       1.08.3e a -q9             1751  001:36.2   1265875      1.02
  1817. PKZIP     2.04g  -a -ef             1045  000:57.4   1324195      1.07
  1818. ARJ       2.39f   a -m3             1181  001: 4.9   1345337      1.09
  1819. PKZIP     2.04g  -a -es              730  000:40.1   1361988      1.10
  1820. HYPER     2.5    -a                 2031  001:51.6   1442831      1.17
  1821. HAP3      3.00    a                13449  012:19.0   1516570      1.23
  1822. ARJ       2.39f   a -m4              905  000:49.7   1552530      1.26
  1823.  
  1824.  
  1825. Extraction, sorted by: Speed
  1826.  
  1827. Program   Description             Ticks   Min:Secs  Relative
  1828. ========  ======================  ======  ========  ========
  1829. LHA       2.52    a -n            ERROR: Exit value of: 2
  1830. LHA       2.52    e -n            ERROR: Exit value of: 2
  1831. PKUNZIP   2.04g  -e (-ex)            340  000:18.7      1.00
  1832. PKUNZIP   2.04g  -e (-en)            344  000:18.9      1.01
  1833. PKUNZIP   2.04g  -e (-ef)            351  000:19.3      1.03
  1834. PKUNZIP   2.04g  -e (-es)            353  000:19.4      1.04
  1835. ARJ       2.39f   e (-jm1)           474  000:26.0      1.39
  1836. ARJ       2.39f   e (-jm)            475  000:26.1      1.40
  1837. ARJ       2.39f   e (-m1)            476  000:26.2      1.40
  1838. ARJ       2.39f   e (-m3)            547  000:30.1      1.61
  1839. SQZ       1.08.3e e (-q0)            610  000:33.5      1.79
  1840. SQZ       1.08.3e e (-q3)            659  000:36.2      1.94
  1841. SQZ       1.08.3e e (-m1)            660  000:36.3      1.94
  1842. SQZ       1.08.3e e (-q6)            669  000:36.8      1.97
  1843. SQZ       1.08.3e e (-q9)            677  000:37.2      1.99
  1844. ARJ       2.39f   e (-m4)            689  000:37.9      2.03
  1845. UNZIP     5.00   -j (-9)            1040  000:57.1      3.06
  1846. UNZIP     5.00   -j (-6)            1076  000:59.1      3.16
  1847. UNZIP     5.00   -j (-3)            1083  000:59.5      3.18
  1848. UNZIP     5.00   -j (-1)            1099  001: 0.4      3.23
  1849. HYPER     2.5    -x                 1699  001:33.4      4.99
  1850. PAH3      3.00    e                17205  015:45.3     50.56
  1851.  
  1852.   >> Here, LHA failed to compress the files because my RAM disk (which LHA
  1853.      used because of my TMP or TEMP environment variable) did not have enough
  1854.      room to hold the temporary archive file.  This is really not LHA's fault,
  1855.      but LHA never did that great anyway, so I didn't bother to re-run the
  1856.      test.
  1857.  
  1858.                              ╓──────────────────╖
  1859.                              ║  Winners Set 11  ║
  1860.          ╓───────────────────╨──────────────────╨──────────────────╖
  1861.          ║ Category 1 (size)    : PKZIP best, then ZIP,   then SQZ ║
  1862.          ║ Category 2 (speed)   : PKZIP best, then ZIP,   then ARJ ║
  1863.          ║ Category 3 (abs size): SQZ   best, then PKZIP, then ZIP ║
  1864.          ║ Category 4 (extract) : PKZIP best, then ARJ,   then SQZ ║
  1865.          ╙─────────────────────────────────────────────────────────╜
  1866.  
  1867.  
  1868.  
  1869.    ---- TEST SET 12 -----------------------------------------------------
  1870.  
  1871.    Two large executable files from Microsoft Visual C++.
  1872.  
  1873.     apstudio.exe    880,288 bytes
  1874.     msvc.exe        772,208 bytes
  1875.                     -------
  1876.                   1,652,496 total bytes in 2 files
  1877.  
  1878.  
  1879.             DCCMP run as: "DCCMP -3 -ts -otest12.rsl archive test12 f:\test12\*.* f:\temp *.*"
  1880.    Batch ARCHIVE was run:       3 times...
  1881. Memory free for programs:     517 K
  1882.             Time per run: 0:45:18
  1883.       Total time elapsed: 2:15:55
  1884.  
  1885.  
  1886. Compression, sorted by: Speed
  1887.  
  1888. Program   Description             Ticks   Min:Secs  Size      Relative
  1889. ========  ======================  ======  ========  ========  ========
  1890. PKZIP     2.04g  -a -es              458  000:25.2    885080      1.00
  1891. ARJ       2.39f   a -m4              619  000:34.0    880381      1.35
  1892. PKZIP     2.04g  -a -ef              668  000:36.7    816146      1.46
  1893. ARJ       2.39f   a -m3              791  000:43.5    821257      1.73
  1894. PKZIP     2.04g  -a -en              949  000:52.1    789620      2.07
  1895. ZIP       1.9    -1                 1009  000:55.4    804893      2.20
  1896. ZIP       1.9    -3                 1152  001: 3.3    791912      2.51
  1897. SQZ       1.08.3e a -q9             1285  001:10.6    811456      2.80
  1898. ZIP       1.9    -6                 1328  001:13.0    787251      2.90
  1899. ARJ       2.39f   a -m1             1340  001:13.6    791190      2.93
  1900. HYPER     2.5    -a                 1375  001:15.5    854939      3.00
  1901. ARJ       2.39f   a -jm1            1414  001:17.7    791088      3.09
  1902. LHA       2.52    a -n              1422  001:18.1    813064      3.10
  1903. PKZIP     2.04g  -a -ex             1431  001:18.6    786214      3.12
  1904. SQZ       1.08.3e a -q6             1532  001:24.2    789518      3.34
  1905. ARJ       2.39f   a -jm             1644  001:30.3    790977      3.59
  1906. ZIP       1.9    -9                 1710  001:34.0    787657      3.73
  1907. SQZ       1.08.3e a -m1             1755  001:36.4    788795      3.83
  1908. SQZ       1.08.3e a -q3             1871  001:42.8    785959      4.08
  1909. SQZ       1.08.3e a -q0             2370  002:10.2    785811      5.17
  1910. HAP3      3.00    a                 6384  005:50.8    790238     13.93
  1911.  
  1912.   >> Again, we have a test set where HAP fails to get the absolute best
  1913.      compression size, but this time, HAP is not quite so bad.
  1914.  
  1915.   >> And again, SQZ takes significantly longer to get only a few bytes better
  1916.      compression than PKZIP.
  1917.  
  1918.   >> Again, ARJ lags behind ZIP and PKZIP in compression with decent speed.
  1919.  
  1920.   >> And ARJ also lags behind ZIP and PKZIP when it comes to speed with
  1921.      decent compression.
  1922.  
  1923.  
  1924. Compression, sorted by: Size
  1925.  
  1926. Program   Description             Ticks   Min:Secs  Size      Relative
  1927. ========  ======================  ======  ========  ========  ========
  1928. SQZ       1.08.3e a -q0             2370  002:10.2    785811      1.00
  1929. SQZ       1.08.3e a -q3             1871  001:42.8    785959      1.00
  1930. PKZIP     2.04g  -a -ex             1431  001:18.6    786214      1.00
  1931. ZIP       1.9    -6                 1328  001:13.0    787251      1.00
  1932. ZIP       1.9    -9                 1710  001:34.0    787657      1.00
  1933. SQZ       1.08.3e a -m1             1755  001:36.4    788795      1.00
  1934. SQZ       1.08.3e a -q6             1532  001:24.2    789518      1.00
  1935. PKZIP     2.04g  -a -en              949  000:52.1    789620      1.00
  1936. HAP3      3.00    a                 6384  005:50.8    790238      1.01
  1937. ARJ       2.39f   a -jm             1644  001:30.3    790977      1.01
  1938. ARJ       2.39f   a -jm1            1414  001:17.7    791088      1.01
  1939. ARJ       2.39f   a -m1             1340  001:13.6    791190      1.01
  1940. ZIP       1.9    -3                 1152  001: 3.3    791912      1.01
  1941. ZIP       1.9    -1                 1009  000:55.4    804893      1.02
  1942. SQZ       1.08.3e a -q9             1285  001:10.6    811456      1.03
  1943. LHA       2.52    a -n              1422  001:18.1    813064      1.03
  1944. PKZIP     2.04g  -a -ef              668  000:36.7    816146      1.04
  1945. ARJ       2.39f   a -m3              791  000:43.5    821257      1.05
  1946. HYPER     2.5    -a                 1375  001:15.5    854939      1.09
  1947. ARJ       2.39f   a -m4              619  000:34.0    880381      1.12
  1948. PKZIP     2.04g  -a -es              458  000:25.2    885080      1.13
  1949.  
  1950.  
  1951. Extraction, sorted by: Speed
  1952.  
  1953. Program   Description             Ticks   Min:Secs  Relative
  1954. ========  ======================  ======  ========  ========
  1955. PKUNZIP   2.04g  -e (-ex)            179  000: 9.8      1.00
  1956. PKUNZIP   2.04g  -e (-en)            223  000:12.3      1.24
  1957. PKUNZIP   2.04g  -e (-es)            243  000:13.4      1.35
  1958. PKUNZIP   2.04g  -e (-ef)            247  000:13.6      1.38
  1959. LHA       2.52    e -n               307  000:16.9      1.71
  1960. ARJ       2.39f   e (-m1)            309  000:17.0      1.72
  1961. ARJ       2.39f   e (-jm)            314  000:17.3      1.75
  1962. ARJ       2.39f   e (-jm1)           318  000:17.5      1.77
  1963. ARJ       2.39f   e (-m3)            337  000:18.5      1.88
  1964. SQZ       1.08.3e e (-q0)            393  000:21.6      2.19
  1965. ARJ       2.39f   e (-m4)            409  000:22.5      2.28
  1966. SQZ       1.08.3e e (-m1)            414  000:22.7      2.30
  1967. SQZ       1.08.3e e (-q6)            432  000:23.7      2.41
  1968. SQZ       1.08.3e e (-q3)            435  000:23.9      2.42
  1969. SQZ       1.08.3e e (-q9)            442  000:24.3      2.46
  1970. UNZIP     5.00   -j (-6)             723  000:39.7      4.03
  1971. UNZIP     5.00   -j (-9)             727  000:39.9      4.05
  1972. UNZIP     5.00   -j (-3)             740  000:40.7      4.12
  1973. UNZIP     5.00   -j (-1)             754  000:41.4      4.20
  1974. HYPER     2.5    -x                  996  000:54.7      5.55
  1975. PAH3      3.00    e                 7935  007:16.0     44.17
  1976.  
  1977.   >> And finally, PAH again takes a ridiculous 44 times longer than PKUNZIP
  1978.      to extract.
  1979.  
  1980.                              ╓──────────────────╖
  1981.                              ║  Winners Set 12  ║
  1982.          ╓───────────────────╨──────────────────╨──────────────────╖
  1983.          ║ Category 1 (size)    : PKZIP best, then ZIP,   then SQZ ║
  1984.          ║ Category 2 (speed)   : PKZIP best, then ZIP,   then ARJ ║
  1985.          ║ Category 3 (abs size): SQZ   best, then PKZIP, then ZIP ║
  1986.          ║ Category 4 (extract) : PKZIP best, then ARJ,   then SQZ ║
  1987.          ╙─────────────────────────────────────────────────────────╜
  1988.  
  1989.  
  1990.  
  1991.  
  1992.    Summary Stats...
  1993.    ----------------
  1994.  
  1995.       The following summarizes the winners in each Category and the winners in
  1996.    two combined categories.  But first, let's repeat the description of each
  1997.    Category:
  1998.  
  1999.       Category 1: Great compression size, ok speed.
  2000.  
  2001.          Look for an archiver that gets great compression size, but without
  2002.          making you wait forever.  Waiting a little longer for a significant
  2003.          improvement is OK, but it is not OK to wait a lot longer for only
  2004.          a few more bytes saved.
  2005.  
  2006.       Category 2: Great compression speed, ok size.
  2007.  
  2008.          Look for an archiver that is very fast without sacrificing a lot in
  2009.          compression size.
  2010.  
  2011.       Category 3: Absolute best compression size, speed doesn't matter.
  2012.  
  2013.          Just look for the archiver that compresses the smallest and ignore
  2014.          how long it took to do it, or how long it will take to extract.
  2015.  
  2016.       Category 4: Great extraction speed, decent compression.
  2017.  
  2018.          Look for an archiver that can extract fast, but only if its
  2019.          compression was good enough to make de-compression meaningful.
  2020.  
  2021.  
  2022.       Please note that categories 1 & 2 are a somewhat subjective.  That is,
  2023.    the winner depends somewhat on what I define as "ok speed" and "ok size".
  2024.    Please feel free to pick your own "winners" from the raw data if you
  2025.    don't trust my judgments.
  2026.  
  2027.       Also, please remember that even if you ran the exact same tests on your
  2028.    computer, you may NOT get the same results that I have gotten.  This is
  2029.    because a lot of factors can vary the results.  These include:
  2030.  
  2031.       o Amount of conventional memory.
  2032.       o Amount of extended or expanded memory and what types (EMS, XMS, etc).
  2033.       o Amount of secondary cache.
  2034.       o Type of processor (286, 386, 486).
  2035.       o Type of drivers loaded (disk cachers, ram disks, etc)
  2036.       o Speed of hard disk.
  2037.       o Use of floppy disk.
  2038.  
  2039.       Of course, in real life, you won't even be compressing the same data as
  2040.    I compressed for these 12 test sets.  And, as these test sets have shown,
  2041.    the archivers can vary greatly depending on the type of data compressed.
  2042.  
  2043.       Thus, while this archiver comparison is generally accurate, it may not
  2044.    be accurate for your circumstances.  However, there is a solution if you
  2045.    care to spend a little time.  Just use my archiver comparer program (DCCMP)
  2046.    to run tests on your own files and on your own computer.  That way you can
  2047.    decide for yourself what is the best archiver for you.
  2048.  
  2049.       Now for the winners...
  2050.  
  2051.  
  2052.                    ╓─────────────────────────────╖
  2053.                    ║  Winners Category 1 (size)  ║
  2054.          ╓─────────╨─────────────────────────────╨───────╖
  2055.          ║ Set  1: PKZIP best, then ZIP,   then SQZ      ║
  2056.          ║ Set  2: PKZIP best, then SQZ,   then ZIP      ║
  2057.          ║ Set  3: PKZIP best, then ARJ,   then ZIP      ║
  2058.          ║ Set  4: PKZIP best, then ARJ,   then SQZ      ║
  2059.          ║ Set  5: PKZIP best, then ZIP,   then SQZ      ║
  2060.          ║ Set  6: PKZIP best, then ZIP,   then ARJ      ║
  2061.          ║ Set  7: LHA   best, then SQZ,   then ARJ      ║
  2062.          ║ Set  8: SQZ   best, then LHA,   then ARJ      ║
  2063.          ║ Set  9: HAP   best, then PKZIP, then ZIP      ║
  2064.          ║ Set 10: HYPER best, then ARJ,   then ZIP      ║
  2065.          ║ Set 11: PKZIP best, then ZIP,   then SQZ      ║
  2066.          ║ Set 12: PKZIP best, then ZIP,   then SQZ      ║
  2067.          ║───────────────────────────────────────────────║
  2068.          ║ PKZIP:   8*3     +       1*2   +      0  = 27 ║
  2069.          ║   ZIP:   0*3     +       5*2   +      4  = 14 ║
  2070.          ║   SQZ:   1*3     +       2*2   +      5  = 12 ║
  2071.          ║   ARJ:   0*3     +       3*2   +      3  =  9 ║
  2072.          ║   LHA:   1*3     +       1*2   +      0  =  5 ║
  2073.          ║   HAP:   1*3     +       0*2   +      0  =  3 ║
  2074.          ║ HYPER:   1*3     +       0*2   +      0  =  3 ║
  2075.          ╙───────────────────────────────────────────────╜
  2076.  
  2077.  
  2078.                    ╓─────────────────────────────╖
  2079.                    ║  Winners Category 2 (speed) ║
  2080.          ╓─────────╨─────────────────────────────╨───────╖
  2081.          ║ Set  1: PKZIP best, then ARJ,   then ZIP      ║
  2082.          ║ Set  2: PKZIP best, then ZIP,   then ARJ      ║
  2083.          ║ Set  3: PKZIP best, then ARJ,   then ZIP      ║
  2084.          ║ Set  4: PKZIP best, then ARJ,   then ZIP      ║
  2085.          ║ Set  5: PKZIP best, then ARJ,   then ZIP      ║
  2086.          ║ Set  6: PKZIP best, then ARJ,   then ZIP      ║
  2087.          ║ Set  7: PKZIP best, then SQZ,   then LHA      ║
  2088.          ║ Set  8: PKZIP best, then SQZ,   then LHA      ║
  2089.          ║ Set  9: PKZIP best, then ARJ,   then ZIP      ║
  2090.          ║ Set 10: PKZIP best, then ZIP,   then ARJ      ║
  2091.          ║ Set 11: PKZIP best, then ZIP,   then ARJ      ║
  2092.          ║ Set 12: PKZIP best, then ZIP,   then ARJ      ║
  2093.          ║───────────────────────────────────────────────║
  2094.          ║ PKZIP:  12*3     +      0*2  +        0  = 36 ║
  2095.          ║   ARJ:   0*3     +      6*2  +        4  = 16 ║
  2096.          ║   ZIP:   0*3     +      4*2  +        6  = 14 ║
  2097.          ║   SQZ:   0*3     +      2*2  +        0  =  4 ║
  2098.          ║   LHA:   0*3     +      0*2  +        2  =  2 ║
  2099.          ║ HYPER:   0*3     +      0*2  +        0  =  0 ║
  2100.          ║   HAP:   0*3     +      0*2  +        0  =  0 ║
  2101.          ╙───────────────────────────────────────────────╜
  2102.  
  2103.  
  2104.                  ╓────────────────────────────────╖
  2105.                  ║  Winners Catagory 3 (abs size) ║
  2106.          ╓───────╨────────────────────────────────╨──────╖
  2107.          ║ Set  1: ZIP   best, then PKZIP, then SQZ      ║
  2108.          ║ Set  2: HAP   best, then SQZ,   then PKZIP    ║
  2109.          ║ Set  3: HAP   best, then PKZIP, then SQZ      ║
  2110.          ║ Set  4: HAP   best, then SQZ,   then PKZIP    ║
  2111.          ║ Set  5: HAP   best, then SQZ,   then ZIP      ║
  2112.          ║ Set  6: HAP   best, then SQZ,   then ZIP      ║
  2113.          ║ Set  7: HAP   best, then SQZ,   then LHA      ║
  2114.          ║ Set  8: HAP   best, then SQZ,   then LHA      ║
  2115.          ║ Set  9: HAP   best, then SQZ,   then ZIP      ║
  2116.          ║ Set 10: HAP   best, then HYPER, then ARJ      ║
  2117.          ║ Set 11: SQZ   best, then PKZIP, then ZIP      ║
  2118.          ║ Set 12: SQZ   best, then PKZIP, then ZIP      ║
  2119.          ║───────────────────────────────────────────────║
  2120.          ║   HAP:  9*3       +       0*2  +      0  = 27 ║
  2121.          ║   SQZ:  2*3       +       7*2  +      2  = 22 ║
  2122.          ║ PKZIP:  0*3       +       4*2  +      2  = 10 ║
  2123.          ║   ZIP:  1*3       +       0*2  +      5  =  8 ║
  2124.          ║ HYPER:  0*3       +       1*2  +      0  =  2 ║
  2125.          ║   LHA:  0*3       +       0*2  +      2  =  2 ║
  2126.          ║   ARJ:  0*3       +       0*2  +      1  =  1 ║
  2127.          ╙───────────────────────────────────────────────╜
  2128.  
  2129.  
  2130.  
  2131.                  ╓───────────────────────────────╖
  2132.                  ║  Winners Catagory 4 (extract) ║
  2133.          ╓───────╨───────────────────────────────╨───────╖
  2134.          ║ Set  1: PKZIP best, then ARJ,   then SQZ      ║
  2135.          ║ Set  2: PKZIP best, then SQZ,   then ARJ      ║
  2136.          ║ Set  3: PKZIP best, then ARJ,   then SQZ      ║
  2137.          ║ Set  4: PKZIP best, then SQZ,   then ARJ      ║
  2138.          ║ Set  5: PKZIP best, then SQZ,   then ARJ      ║
  2139.          ║ Set  6: ZIP   best, then PKZIP, then ARJ      ║
  2140.          ║ Set  7: PKZIP best, then LHA,   then SQZ      ║
  2141.          ║ Set  8: PKZIP best, then LHA,   then SQZ      ║
  2142.          ║ Set  9: PKZIP best, then ARJ,   then SQZ      ║
  2143.          ║ Set 10: PKZIP best, then SQZ,   then ARJ      ║
  2144.          ║ Set 11: PKZIP best, then ARJ,   then SQZ      ║
  2145.          ║ Set 12: PKZIP best, then ARJ,   then SQZ      ║
  2146.          ║───────────────────────────────────────────────║
  2147.          ║ PKZIP:  11*3     +       1*2  +       0  = 35 ║
  2148.          ║   ARJ:   0*3     +       5*2  +       5  = 15 ║
  2149.          ║   SQZ:   0*3     +       4*2  +       7  = 15 ║
  2150.          ║   LHA:   0*3     +       2*2  +       0  =  4 ║
  2151.          ║   ZIP:   1*3     +       0*2  +       0  =  3 ║
  2152.          ║ HYPER:   0*3     +       0*2  +       0  =  0 ║
  2153.          ║   HAP:   0*3     +       0*2  +       0  =  0 ║
  2154.          ╙───────────────────────────────────────────────╜
  2155.  
  2156.  
  2157.  
  2158.                 ╓──────────────────────────────────╖
  2159.                 ║  Winners Catagory 1 & 2 Combined ║
  2160.          ╓──────╨──────────────────────────────────╨─────╖
  2161.          ║ PKZIP:  20*3     +       1*2  +       0  = 62 ║
  2162.          ║   ZIP:   0*3     +       9*2  +      10  = 28 ║
  2163.          ║   ARJ:   0*3     +       9*2  +       7  = 25 ║
  2164.          ║   SQZ:   1*3     +       4*2  +       5  = 16 ║
  2165.          ║   LHA:   1*3     +       1*2  +       2  =  7 ║
  2166.          ║   HAP:   1*3     +       0*2  +       0  =  3 ║
  2167.          ║ HYPER:   1*3     +       0*2  +       0  =  3 ║
  2168.          ╙───────────────────────────────────────────────╜
  2169.  
  2170.  
  2171.  
  2172.                  ╓────────────────────────────────╖
  2173.                  ║  Winners Catagory ALL Combined ║
  2174.          ╓───────╨────────────────────────────────╨──────╖
  2175.          ║ PKZIP:  31*3     +       6*2  +       2  =107 ║
  2176.          ║   SQZ:   3*3     +      15*2  +      14  = 53 ║
  2177.          ║   ARJ:   0*3     +      14*2  +      13  = 41 ║
  2178.          ║   ZIP:   1*3     +      11*2  +      14  = 39 ║
  2179.          ║   HAP:  10*3     +       0*2  +       0  = 30 ║
  2180.          ║   LHA:   1*3     +       3*2  +       4  = 13 ║
  2181.          ║ HYPER:   1*3     +       1*2  +       0  =  5 ║
  2182.          ╙───────────────────────────────────────────────╜
  2183.  
  2184.  
  2185.  
  2186.    Conclusion...
  2187.    -------------
  2188.  
  2189.       Now I know that some people will just skip to this part of my
  2190.    comparison and look at the above tables without reading the preceding
  2191.    discussion.  But if you do read the preceding discussion and look at
  2192.    the raw data, you will see that the archivers can vary greatly depending
  2193.    on the type of data being compressed.
  2194.  
  2195.       Thus, one conclusion is the observation that what archiver is best
  2196.    for you depends greatly on what types of data you work with and on how
  2197.    you work with that data.
  2198.  
  2199.       Moreover, the conclusion is really up to you, because only you can
  2200.    decide how important the trade-off between speed of compression and size
  2201.    of compression is.
  2202.  
  2203.       If absolute size is your only criteria, then HAP is your archiver.
  2204.    In the majority of test sets, it compressed the best.  And in many of
  2205.    those, it compressed significantly better.  But this has to weighed
  2206.    against its speed.  Or rather, its lack of speed.  HAP is up to 18 times
  2207.    slower compressing and up to 50 times slower de-compressing!
  2208.  
  2209.       If you compress large files, this speed trade-off can be really
  2210.    important.  After all, who wants to wait around for 12 minutes with one
  2211.    archiver when another can do the job in less than 2 minutes.
  2212.  
  2213.       And of course it gets more complicated when many of the archivers
  2214.    offer multiple levels of compression size and speed.
  2215.  
  2216.       And even if one archiver does a good job most of the time, at other
  2217.    times it can preform terribly.
  2218.  
  2219.       Nevertheless, when you go over all the data above like I have, certain
  2220.    general things become apparent.  And I think that the above summary tables
  2221.    bare this out.
  2222.  
  2223.  
  2224.  
  2225.    So, generally speaking...
  2226.    -------------------------
  2227.  
  2228.       PKZIP...
  2229.  
  2230.          As the above tables show, PKZIP loses in only one Category, the
  2231.       absolute size category.  But even in this Category, it comes in a
  2232.       decent third place with only HAP and SQZ beating it.  But HAP has
  2233.       a number of problems with it including poor support, poor features,
  2234.       and terrible speed.  And SQZ generally gets only a little better
  2235.       compression while taking considerably longer to do so.
  2236.  
  2237.          And consider this, while ARJ is generally considered PKZIP's main
  2238.       competitor, in this Category where PKZIP comes in third, ARJ comes in
  2239.       dead last (though very close to HYPER and LHA).
  2240.  
  2241.          In every other Category though, PKZIP not only wins, but wins
  2242.       with twice the score of anybody else.  In test after test, PKZIP
  2243.       generally was that quickest archiver to achieve a given level of
  2244.       compression.  And it not only compressed fast, but it also compressed
  2245.       the best if you throw out the archivers that took excessively long.
  2246.  
  2247.          PKZIP was not only the fastest archiver, it was also the most
  2248.       consistent.  Often, the other archivers would have cases where they
  2249.       preformed very poorly in speed or size, but PKZIP remained reliable.
  2250.  
  2251.          Not only is PKZIP reliable in speed and size of compression, but
  2252.       because PKZIP is used by so many more people than any other archiver,
  2253.       it is also a more reliable program.  Even though PKZIP 2.04 came out
  2254.       with a number of bugs, they were quickly found because of the massive
  2255.       number of people using it, and then were quickly fixed.
  2256.  
  2257.          Moreover, PKZIP is somewhat of a standard, and standards should
  2258.       not lightly be thrown away (or quickly updated with new algorithms
  2259.       I might add).  Indeed, it is because of the PKZIP standard that
  2260.       other compatible archivers like ZIP were created.
  2261.  
  2262.          Add to this PKZIP's popularity, features, and availability of
  2263.       compatible archivers on many platforms, and you have an easy winner.
  2264.  
  2265.  
  2266.       ARJ...
  2267.  
  2268.          It used to be that ARJ was strong on compression size and weak
  2269.       on speed.  Now just the opposite is true.  ARJ did its best in the
  2270.       two speed categories and did its worst in the two size categories.
  2271.  
  2272.          ARJ came in second in the "speed" Category, but not by much.  On
  2273.       different machines, ZIP might have come in second place.
  2274.  
  2275.          ARJ tied for second with SQZ in the "extract" category.
  2276.  
  2277.          ARJ came in forth in the "size" Category, but perhaps ARJ could
  2278.       do well enough on the specific types of data you use to move it up a
  2279.       place or two.
  2280.  
  2281.          Finally, ARJ came in dead last in the absolute size category.
  2282.  
  2283.          Nevertheless, ARJ does have a LOT of features (if you're willing
  2284.       to take the time to figure them out), and is based on portable code,
  2285.       and so I would generally rate ARJ in second place overall, but with
  2286.       ZIP and SQZ very close behind (if not better depending on your
  2287.       preferences and circumstances).
  2288.  
  2289.  
  2290.       ZIP...
  2291.  
  2292.          I find it interesting that an archiver like ZIP performed as
  2293.       well as it did.  After all, ZIP is a freeware program that has
  2294.       portable source code available that can be used freely.  Moreover,
  2295.       ZIP was written by a group of people that were often more concerned
  2296.       with adding support for this or that platform then they were on speed.
  2297.  
  2298.          If ZIP's extraction speed were improved to match the extraction
  2299.       speed of SQZ or ARJ, then ZIP could be rated the second place winner.
  2300.       Even as it is, ZIP could be rated in second place, seeing that it
  2301.       did come in second place in the combined 1 & 2 categories.
  2302.  
  2303.          In the end, ZIP's good placement strengthens PKZIP's 1st place
  2304.       rating, and gives a good option for people who could use the source
  2305.       code or simply like the price of freeware.
  2306.  
  2307.  
  2308.       SQZ...
  2309.  
  2310.          SQZ reminds me of ARJ a while back.  SQZ does great in compression
  2311.       size, but is lacking in speed.  If the speed could be improved, then
  2312.       SQZ would become the 2nd place finisher.  If the speed were improved
  2313.       a lot, it could conceivably become the 1st place winner.
  2314.  
  2315.          Still, SQZ's size is not THAT much better than PKZIP, and thus,
  2316.       it would be very hard for SQZ to replace such a solid standard.
  2317.  
  2318.  
  2319.       HAP...
  2320.  
  2321.          HAP is interesting because it sets a new threshold of compression.
  2322.       I'm sure that some people will use it just because it can compress
  2323.       significantly better than PKZIP.  Even if it is so slow.  And even
  2324.       if the extraction is 50 times slower than PKUNZIP.
  2325.  
  2326.          But watch out!  HAP doesn't always compress well.  In some cases
  2327.       it compressed very poorly (and slow on top of that).
  2328.  
  2329.          HAP seems to do well on ASCII files and especially well on English
  2330.       text.  It would be nice to see some archiver incorporate the HAP
  2331.       algorithm as an option along with the other faster algorithms.  And,
  2332.       even if a person selects the HAP option, it should not be used on
  2333.       files that it compresses poorly (like binary files).
  2334.  
  2335.  
  2336.       LHA...
  2337.  
  2338.          I had hoped that this newer version of LHA would do better.  But,
  2339.       for the most part, LHA is easily out done by PKZIP, ARJ, ZIP, or
  2340.       SQZ, and so there's no reason to use it.
  2341.  
  2342.          LHA preforms the best on large numbers of very small files.
  2343.  
  2344.  
  2345.       HYPER...
  2346.  
  2347.          Although HYPER can be put in last place for this comparison, it
  2348.       shouldn't be completely written off.  There are a few types of files,
  2349.       (admittedly not many), where HYPER does better than any other
  2350.       archiver.  If you have these types of files, then HYPER could be
  2351.       the archiver for you.  Hard to imagine, but who knows?!
  2352.  
  2353.          How do you find out?  Just run my DCCMP program to test HYPER
  2354.       against the other archivers on your own type of data.
  2355.  
  2356.  
  2357.  
  2358.    Epilogue
  2359.    --------
  2360.  
  2361.       Well, I could have tested a lot more types of files, and I could
  2362.    have tested them under a lot more conditions (like low memory).  And, I
  2363.    could have written a lot more about what all the results mean.  But
  2364.    this has already taken plenty of time.  So, this will just have to
  2365.    do...  
  2366.  
  2367.                                    Dean W. Cooper
  2368.                                    June 9, 1993
  2369.  
  2370.